gpt4 book ai didi

python - python开发环境运行入口点console_script

转载 作者:行者123 更新时间:2023-12-04 13:17:29 25 4
gpt4 key购买 nike

作为 python 包开发人员,运行使用入口点的控制台脚本的过程是什么?

我有一个带有 setup.py 的 python 项目。在里面,我有一个

 entry_points={
'console_scripts': [
'myscript=mypackage.myscript.__main__:main',
]
},

如果我执行 python setup.py develop,我virtualenv/bin 中的包装脚本结束,但是当我运行他们我得到一个错误:

ImportError: Entry point ('console_scripts', 'myscript') not found

(如果我执行 pip install .,上面的确实有效)

现在,从项目的顶部,我可以复制包装器脚本并手动执行:

$ python
Python 3.6.8 (default, Apr 25 2019, 21:02:35)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-36)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pkg_resources import load_entry_point
>>> load_entry_point('mypackage', 'console_scripts', 'myscript')
<function main at 0x7f7b971bcea0>
>>>

所以,我从中得到的是 virtualenv/bin/myscript 正在寻找包的 virtualenv 并且当我从我的顶部手动运行它时dev 环境,它会在我的当前目录中查找包。

不过我不想在我的virtualenv 中运行它。我不想每次尝试修改我的脚本时都必须执行 pip install .

此处预期的工作流程是什么?要手动运行 python -m mypackage.myscript?我宁愿像用户那样运行它。复制 virtualenv/bin 脚本?然后他们可能会过时......

我无法在 setuptools 文档中找到开发工作流程的这一方面。

更新:

我确实在 setup.py develop 之后在我的 virtualenv 中找到了这个:

$ more virtualenv/lib/python3.6/site-packages/mypackage.egg-link
/home/me/src/mypackage.git
.

最佳答案

按照@Iguananaut 的建议,我改为运行 pip install -e .

现在可以了。

然后我做了一个 pip uninstall mypackage 并再次做了一个 python setup.py develop 来重现。它没有重现。

我现在明白 load_entry_point 从字面上读取 mypackage.egg-info 中的 entry_points.txt。我唯一的猜测是该文件不知何故是坏的......并且无法通过运行 python setup.py develop 得到修复。

那么——我的查询的答案是:

要在开发环境中运行控制台脚本,请使用 pip install -e . 并从 virtualenv/bin/ 运行脚本。它被设计成以这种方式工作,如果不是这样——那就是其他地方出了问题。

关于python - python开发环境运行入口点console_script,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58842090/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com