私はargparseのおかげで、シェルから2つのPythonスクリプトを使用できます。setuptoolsを使ってpython cliスクリプトを重複してインストールするには?
setup.pyの関連部分:
setup(
# (...)
zip_safe=True,
scripts=['bin/bgce.py', 'bin/sizes.py'],
packages=find_packages(),
data_files=data_files,
entry_points = {
'console_scripts': [
'bgce = bgce:main',
'sizes = sizes:main',]
}
)
私はbgce、bgce.py、サイズ、/ usr/local/binにsizes.pyで終わります。すべての4つの仕事。私がままにしておくと
は、いずれかのパッケージまたはスクリプトのラインは、何の重複はありませんが、ファイルは次のように失敗:
Traceback (most recent call last):
File "/usr/local/bin/bgce", line 9, in <module>
load_entry_point('Backtestground==1.0', 'console_scripts', 'bgce')()
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 305, in load_entry_point return get_distribution(dist).load_entry_point(group, name)
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 2244, in load_entry_point return ep.load()
File "/usr/lib/python2.6/dist-packages/pkg_resources.py", line 1954, in load
entry = __import__(self.module_name, globals(),globals(), ['__name__'])
ImportError: No module named bgce
私だけbgceとサイズがインストールされているために何ができるか、何の重複しないと迷惑な(タブ完成のため).py添付?
find_packages()は、両方のスクリプトがあるディレクトリbinを返します。 scripts引数を削除すると、ファイルは2つだけになりますが、どちらもImportErrorで失敗します。 – thorwil
'bcge = bin.bcge:main'は'/usr/local/share/python $ VER/site-packages/bin/bcge.py'にインストールされたファイルで動作します。これがうまくいけば、 'bin'の名前をパッケージにとって意味のあるものに変更することができます。 – Tobu
それでもうまくいきません。スクリプトは/ usr/local/binにありますが、/ usr/local/lib /以下にある場合は/ usr/lib /以下のモジュールを探します。 – thorwil