6

オンラインで壁紙データベースを検索して壁紙をダウンロードする小さなスクリプトを開発しました。このスクリプトを、コンピューターが苦手な別の人に渡したいのですが、Python から始めたばかりなのでわかりません。サードパーティ モジュールの「インポート」をプログラムに含めて、100% 移植可能にする方法、これを行うのに役立つものはありますか? または、サードパーティのモジュールを入力して分析し、使用する機能をコピーして貼り付ける必要がありますか?

4

2 に答える 2

4

もっと悪いことをする

簡単にできることは、他のモジュールをコードにバンドルすることです。これは、関数を他のモジュールからコードにコピー/貼り付けする必要があるという意味ではありません。どの依存関係が失われるかわからないため、絶対にそうすべきではありませんディレクトリ構造は次のようになります。

/myproject
    mycode.py
    thirdpartymodule1.py
    thirdpartymodule2.py
    thirdpartymodule3/
        <contents>

やったほうがいいこと

これを行う最善の方法は、 Python のパッケージ インストーラーが自動的にダウンロードするために使用できる依存関係のリスト (通常は と呼ばれるrequirements.txt) を Python パッケージに含めることです。pipこれは少し複雑すぎるかもしれないので、Mac または Linux を想定して、友人に次の指示を与えることができます。

  1. 実行します$ curl http://python-distribute.org/distribute_setup.py | python。これにより、パッケージ マネージャーのインストールに必要なツールが提供されます。
  2. 実行します$ curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python。これにより、パッケージ マネージャーがインストールされます。
  3. コードで使用したサードパーティの Python モジュールの名前のリストを友人に渡してください。この例ではrequests、 、twisted、およびを使用したとしbotoます。
  4. あなたの友人はコマンドラインから実行する必要があります$ pip install <list of package names>。この例では、 のようになります$ pip install requests twisted boto
  5. Python コードを実行してください。import boto友人のコンピュータにパッケージがインストールされているため、次のような行が機能するはずです。
于 2012-10-14T02:22:35.927 に答える
2

より簡単な方法:

  1. クリーンな仮想環境から始めます。
  2. コードの開発に必要なパッケージをインストールします。
  3. 完了したら、プロジェクトの要件のリストを作成します。
  4. このファイル (ステップ 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 に答える