我想創建一個setup.py,它將我的文件安裝到自定義目錄中。我有一定的前綴,在這裏我想得到以下結果:python setup.py配置在自定義目錄中安裝文件
/my/prefix/
bin/
script.sh
libexec/
one.py
two.py
...
lib/pythonX.Y/site-packages/
package/...
我最初的項目如下:
/
script.sh
one.py
two.py
...
setup.py
package/...
__init__.py
...
什麼會實現,最好的方法是什麼?我希望能夠與像稍後進行安裝:
python setup.py install --prefix=/my/prefix
我能得到「一攬子」很好地安裝在正確的目錄中的lib/pythonX.Y /站點包下--prefix是默認位置。但有沒有一種乾淨的方式來將script.sh變成「bin」和其他python文件到「libexec」中?我看到實現這一目標的唯一方法是手動將這些文件複製到我的setup.py腳本中。可能有一個更清潔和更標準的方法來做到這一點?
(編輯)
解決方案
我結束了setup.py這樣的:
setup(name='mylib',
scripts=['script.sh'],
data_files=[('libexec', ['one.py', 'two.py'])]
)
當然,你可以遍歷了所有的libexec Python文件,但我只有我需要的2-3個python文件。
(EDIT 2)
此外,我還可以有以下setup.cfg:
[install]
prefix=/my/prefix
,取而代之的python setup.py install --prefix=/my/prefix
我可以這樣做:
python setup.py install
這裏有一些有用的文檔:https://docs.python.org/2/install/index.html#alternate-installation-unix-the-prefix-scheme,這裏是https://docs.python。 org/3/distutils/introduction.html – Pierz