[英]How do you install a file to site-packages (not package sub-folder) from setuptools?
[英]Install module to site-packages with setuptools
我正在嘗試將CLI上傳到PIP,一旦安裝,將在用戶鍵入myscript
時運行
我的文件夾結構是這樣的:
lib
myscript
__init__.py (empty)
__main__.py (code that needs to run)
utilities.py (needs to be imported from main)
scripts
myscript
setup.py
我的setup.py
應該安裝lib.myscript
包並安裝myscript
作為命令行模塊
setup.py
import setuptools
setuptools.setup(
name='myscript',
version='1.0',
scripts=['./scripts/myscript'],
packages=['lib.myscript'],
install_requires=['setuptools', 'pandas >= 0.22.0', 'numpy >= 1.16.0'],
python_requires='>=3.5'
)
scripts/myscript
#!/usr/bin/env bash
if [[ ! $@ ]]; then
python -m myscript -h
else
python -m myscript $@
fi
一旦我做了python setup.py install
, myscript
就會作為命令行模塊安裝並運行。 但是,它會拋出一個錯誤,說沒有名為myscript
模塊。
你還沒有安裝myscript
,你已經安裝了lib.myscript
所以試試這個: python -m lib.myscript
。 並且讓Python將lib
識別為一個包創建一個空文件lib/__init__.py
。
PS。 這段代碼:
#!/usr/bin/env bash
if [[ ! $@ ]]; then
python -m myscript -h
else
python -m myscript $@
fi
可以簡化為:
#!/usr/bin/env bash
exec python -m myscript ${@:--h}
在shell-speak中表示“如果不為空則使用$@
,否則-h
”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.