オンラインで壁紙データベースを検索して壁紙をダウンロードする小さなスクリプトを開発しました。このスクリプトを、コンピューターが苦手な別の人に渡したいのですが、Python から始めたばかりなのでわかりません。サードパーティ モジュールの「インポート」をプログラムに含めて、100% 移植可能にする方法、これを行うのに役立つものはありますか? または、サードパーティのモジュールを入力して分析し、使用する機能をコピーして貼り付ける必要がありますか?
質問する
2753 次
2 に答える
4
もっと悪いことをする
簡単にできることは、他のモジュールをコードにバンドルすることです。これは、関数を他のモジュールからコードにコピー/貼り付けする必要があるという意味ではありません。どの依存関係が失われるかわからないため、絶対にそうすべきではありません。ディレクトリ構造は次のようになります。
/myproject
mycode.py
thirdpartymodule1.py
thirdpartymodule2.py
thirdpartymodule3/
<contents>
やったほうがいいこと
これを行う最善の方法は、 Python のパッケージ インストーラーが自動的にダウンロードするために使用できる依存関係のリスト (通常は と呼ばれるrequirements.txt
) を Python パッケージに含めることです。pip
これは少し複雑すぎるかもしれないので、Mac または Linux を想定して、友人に次の指示を与えることができます。
- 実行します
$ curl http://python-distribute.org/distribute_setup.py | python
。これにより、パッケージ マネージャーのインストールに必要なツールが提供されます。 - 実行します
$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python
。これにより、パッケージ マネージャーがインストールされます。 - コードで使用したサードパーティの Python モジュールの名前のリストを友人に渡してください。この例では
requests
、 、twisted
、およびを使用したとしboto
ます。 - あなたの友人はコマンドラインから実行する必要があります
$ pip install <list of package names>
。この例では、 のようになります$ pip install requests twisted boto
。 - Python コードを実行してください。
import boto
友人のコンピュータにパッケージがインストールされているため、次のような行が機能するはずです。
于 2012-10-14T02:22:35.927 に答える
2
より簡単な方法:
- クリーンな仮想環境から始めます。
- コードの開発に必要なパッケージをインストールします。
- 完了したら、プロジェクトの要件のリストを作成します。
- このファイル (ステップ 3 から) を友達に送信します。
あなたの友人はpip install -r thefile.txt
、あなたのアプリケーションのすべての要件を取得するだけです。
次に例を示します。
D:\>virtualenv --no-site-packages myproject
The --no-site-packages flag is deprecated; it is now the default behavior.
New python executable in myproject\Scripts\python.exe
Installing setuptools................done.
Installing pip...................done.
D:\>myproject\Scripts\activate.bat
(myproject) D:\>pip install requests
Downloading/unpacking requests
Downloading requests-0.14.1.tar.gz (523Kb): 523Kb downloaded
Running setup.py egg_info for package requests
warning: no files found matching 'tests\*.'
Installing collected packages: requests
Running setup.py install for requests
warning: no files found matching 'tests\*.'
Successfully installed requests
Cleaning up...
(myproject) D:\>pip freeze > requirements.txt
(myproject) D:\>type requirements.txt
requests==0.14.1
于 2012-10-14T05:58:31.657 に答える