たとえば.debパッケージと同様に、私のsetup.pyでパッケージの依存関係を構成して実行することは可能ですか?
$ Sudo python setup.py install
それらは自動的にインストールされます。すでにインターネットを調査しましたが、「requires」、「install_requires」、「requirements.txt」など、混乱したままのことがわかりました。
別の可能な解決策
try:
# for pip >= 10
from pip._internal.req import parse_requirements
except ImportError:
# for pip <= 9.0.3
from pip.req import parse_requirements
def load_requirements(fname):
reqs = parse_requirements(fname, session="test")
return [str(ir.req) for ir in reqs]
setup(name="yourpackage", install_requires=load_requirements("requirements.txt"))
Libフォルダーにrequirements.txt
を作成し、すべての依存関係を次のように記述します。
gunicorn
docutils>=0.3
lxml==0.5a7
次に、setup.py
スクリプトを作成し、requirements.txt
を読み取ります。
import os
thelibFolder = os.path.dirname(os.path.realpath(__file__))
requirementPath = thelibFolder + '/requirements.txt'
install_requires = [] # Examples: ["gunicorn", "docutils>=0.3", "lxml==0.5a7"]
if os.path.isfile(requirementPath):
with open(requirementPath) as f:
install_requires = f.read().splitlines()
setup(name="yourpackage", install_requires=install_requires, [...])
python setup.py install
を実行すると、パッケージとすべての依存関係がインストールされます。 @jwodderがrequirements.txt
ファイルを作成することは必須ではないと述べたように、install_requires
をsetup.py
スクリプトに直接設定することができます。ただし、requirements.txt
ファイルを作成することをお勧めします。
セットアップ関数では、version
、packages
、author
なども設定する必要があります。完全な例については、ドキュメントを参照してください: https:// docs。 python.org/3.7/distutils/setupscript.html
パッケージdirは次のようになります。
├── yourpackage
│ ├── yourpackage
│ │ ├── __init__.py
│ │ └── yourmodule.py
│ ├── requirements.txt
│ └── setup.py