gpt4 book ai didi

python - 编译并上传到pypicloud服务器后运行python包

转载 作者:太空狗 更新时间:2023-10-29 17:46:38 27 4
gpt4 key购买 nike

亲们, 在构建一个名为 myShtuff 的包并将其部署到本地 pypicloud 服务器后,我可以将它安装到一个单独的虚拟环境中。

一切似乎都正常,除了可执行文件的路径...

(venv)[ec2-user@ip-10-0-1-118 ~]$ pip freeze
Fabric==1.10.1
boto==2.38.0
myShtuff==0.1
ecdsa==0.13
paramiko==1.15.2
pycrypto==2.6.1
wsgiref==0.1.2

如果我尝试直接运行脚本,我会得到:

(venv)[ec2-user@ip-10-0-1-118 ~]$ myShtuff
-bash: myShtuff: command not found

但是,我可以通过以下方式运行它:

(venv)[ec2-user@ip-10-0-1-118 ~]$ python /home/ec2-user/venv/lib/python2.7/site-packages/myShtuff/myShtuff.py
..works

我在构建包时犯了错误吗? setup.cfg 或 setup.py 中的某处?

谢谢!!!

最佳答案

您的包中需要一个 __main__.py,以及一个在 setup.py 中定义的入口点。

参见 herehere但简而言之,当使用 python -m 运行模块时,您的 __main__.py 运行您的主要功能,并且 setuptools 可以将您想要作为脚本运行的任意功能.你可以做其中一个或两个。你的 __main__.py 看起来像:

from .stuff import my_main_func

if __name__ == "__main__":
my_main_func()

在 setup.py 中:

  entry_points={
'console_scripts': [
'myShtuffscript = myShtuff.stuff:my_main_func'
]

在这里,myShtuffscript 是您希望调用的可执行文件的名称,myShtuff 是您的包的名称,stuff 是文件的名称包 (myShtuff/stuff.py),以及 my_main_func 该文件中函数的名称。

关于python - 编译并上传到pypicloud服务器后运行python包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30205298/

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