编译并上传到pypicloud后运行python包

2024-04-25 02:00:44 发布

您现在位置:Python中文网/ 问答频道 /正文

各位, 在构建了一个名为myShtuff的包并将其部署到本地pypicloud服务器之后,我可以将其安装到一个单独的虚拟env中。在

除了可执行文件的路径之外,一切似乎都正常。。。在

(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

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

^{pr2}$

但是,我可以通过:

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

我在构建程序包时出错了吗?在某个地方设置.cfg或者setup.py?在

谢谢!!!在


Tags: pippy路径ip服务器env可执行文件venv
2条回答

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

请参见herehere,但简而言之,__main__.py在使用python -m运行模块时,无论您的主要功能是什么,setuptools可以生成任何您想作为脚本运行的任意函数。你可以选择一种,也可以两者兼而有之。您的__main__.py看起来像:

from .stuff import my_main_func

if __name__ == "__main__":
    my_main_func()

在设置.py公司名称:

^{pr2}$

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

您需要在setup.py中定义entry_point,以便从命令行直接执行某些操作:

entry_points={
    'console_scripts': [
        'cursive = cursive.tools.cmd:cursive_command',
    ],
},

更多细节可以在here找到。在

相关问题 更多 >