2017-07-12 8 views
2

私はいくつかの人がPythonで作って使う予定のプログラムに取り組んでいます。それらはすべてpythonがインストールされていますが、このプログラムがインポートするライブラリがいくつかあります。Pythonプロジェクトにライブラリの依存関係を含めるにはどうすればいいですか?

私は理想的にはPythonファイルを送信し、インストールする必要のあるライブラリをそれぞれ教えなくても、実行することができるのが理想ですピップ

は、私は私のプロジェクトは、私のPythonのファイル(または、おそらく彼らのためにそれをインストールするインストーラを設定)を使用するすべてのライブラリを含めることができる方法はありますか?あるいは、私は彼らにインストールしなければならないPythonライブラリの完全なリストを与える必要がありますし、手動でそれぞれを行うようにする必要がありますか?

答えて

3

を見つけることができます。 setuptools.setup()を簡単に

you pass them as install_requires parameter

その後、ホイール、卵、さらにはWindowsのインストーラパッケージを含む多くの形式のパッケージを生成することができます。また、あなたの簡単なバージョン管理の恩恵を与える標準パッケージのインフラストラクチャを使用して

2

あなたはあなたのプロジェクトのパッケージを管理するためにvirtualenvを使用する必要があります。その場合は、pip freeze > requirements.txtを使用して、プロジェクトのすべての依存関係を保存できます。その後、requirements.txtには、アプリを実行するために必要なすべての要件が含まれます。このファイルをリポジトリに追加します。他のオプションは、は、PyPIパッケージを作成することになります

pip install -r requirements.txt 

requirements.txtからすべてのパッケージをインストールすることができます。あなたはPython packaging tutorialのトピックのこのトピックに関するチュートリアルhere

+0

これには、パッケージがPyPIでも利用できる必要があります。 –

+0

'requirements.txt'は、バージョンを固定するために使用されます。依存関係を指定するのではなく、 'setup.py'の仕事です。 – wim

0

あなたのパッケージを構築し、あなたのsetup.pyで依存関係を指定することができます。これは

http://python-packaging.readthedocs.io/en/latest/dependencies.html

from setuptools import setup 

setup(name='funniest', 
    version='0.1', 
    description='The funniest joke in the world', 
    url='http://github.com/storborg/funniest', 
    author='Flying Circus', 
    author_email='[email protected]', 
    license='MIT', 
    packages=['funniest'], 
    install_requires=[ 
     'markdown', 
    ], 
    zip_safe=False) 

正しい方法、それは今のオプションは、あなたのスクリプトがシェルと対話することができますいくつかのlibですハックが必要です。 pexpectは、シェルとのやりとりを自動化するための私のお気に入りです。

https://pexpect.readthedocs.io/en/stable/

関連する問題