2017-07-08 8 views
1

かなりのコードで済んでいます。これは、Pythonにプリインストールされていないモジュールのいくつかを使用します。今問題は、ユーザーがシステムに必要なすべてのモジュールをインストールしなければならないことです。
この痛みからユーザーを救う方法を教えてください。
使用されているモジュール内のそれらの関数だけを除外する方法はありますか、何らかの形でそれらを上書きしたコードでパッケージ化しますか?
今私が気づいていることの1つは、ユーザーの労力を軽減するためのアシストシェルスクリプトを書くことです。しかし、モジュールを再度インストールすると、さまざまなシステム上で痛みやエラーが発生する可能性があります。私はそれを処理することはできません。 私に何か提案してください。
ありがとうございましたモジュールのないPythonコードをモジュールなしでマシン上で実行する

Edit1:ライブラリの全体をインストールするのは少し複雑でした。私はPython用のcv2モジュール(バックグラウンドではC/C++で実装されています)に取り組んでいます。一日の終わりに私はたくさんの関数を使っていますそれ。
PS:それはあなたが

XYZモジュールを持っていると言う。通常、あなたがアクセス権を持っていないいくつかの理由についてピップ

pip install xyz 

を使用していることをインストールしますOpenCVの

+0

すべての依存関係を含むようにsetup.pyを記述しますか?すべてのモジュールを1つのコマンドにインストールすることができます。 –

答えて

0

をインストールするために私に数時間を要しましたxyzリポジトリをgithubからアプリケーションに(好ましくはgitサブモジュールとして)コピーしてください。

xyzリポジトリはprobです。このような何かを見てください。あなたはXYZレポ

ln -s XYZ\ Repo/xyz xyz 
のモジュールディレクトリにシンボリックリンクを追加する必要がmyapp.pyでXYZをインポートすることができるようにするに

My app (dir) 
- XYZ repo (dir) 
- __init__.py 
- myapp.py 

XYZ repo (dir) 
- xyz (dir) <-- this is where the actual module is 
- readme.md 
- setup.py 

今、あなたのアプリケーションのディレクトリには、次のようになります

あなたのアプリケーションは、次のようになります。

My app (dir) 
- XYZ repo (dir) 
- xyz 
- __init__.py 
- myapp.py 

コードにxyzをインポートできるようになりました。

免責事項:これは、純粋なpythonライブラリでのみ動作します。依存関係がある場合は、インストール時にビルドする必要があり、少なくともビルドスクリプトを実行する必要があります。 xyzパッケージの依存関係も同じ方法でインストールする必要があります

+0

ありがとうございます。しかし、私は、ライブラリ全体をインストールするのは少し複雑でした。私はPython用のcv2モジュール(バックグラウンドではC/C++で実装されています)に取り組んでいます。一日の終わりに私はたくさんの関数を使っていますそれ。 –

+0

'cx_freeze'のようなものを使う必要があります。これはスクリプト全体とすべての依存関係を1つの小さなファイルにまとめます。完全に自己完結型。私はWindowsマシン用の.exeを作るのにcxを使いました。それ以外のパッケージを実行することができますが、確かに何か確信しています。 Googleの "移植"のpythonを試してみよう – Joe

関連する問題