【发布时间】:2013-05-20 11:34:03
【问题描述】:
我有一个小型 python 应用程序,我想将它制作成一个可下载/可安装的可执行文件,用于类 UNIX 系统。我的印象是 setuptools 将是实现这一目标的最佳方式,但不知何故这似乎不是一项常见的任务。
我的目录结构如下:
myappname/
|-- setup.py
|-- myappname/
| |-- __init__.py
| |-- myappname.py
| |-- src/
| |-- __init__.py
| |-- mainclassfile.py
| |-- morepython/
| |-- __init__.py
| |-- extrapython1.py
| |-- extrapython2.py
包含if __name__ == "__main__": 的文件是myappname.py。此文件顶部有一行 import src.mainclassfile。
下载后,我希望用户能够执行以下操作:
$ python setup.py build
$ python setup.py install
然后它将是一个已安装的可执行文件,他们可以从命令行的任何位置调用它:
$ myappname arg1 arg2
我的 setup.py 的重要部分如下:
from setuptools import setup, find_packages
setup(
name='code2flow',
scripts=['myappname/myappname.py'],
package_dir={'myappname': 'myappname'},
packages=find_packages(),
)
当前状态
通过运行:
$ sudo python setup.py install
然后在一个新的shell中:
$ myapp.py
我收到 No module named 错误
【问题讨论】:
-
当像
./myappname.py一样直接调用时? -
@scottmrogowski 我必须对上述设置进行哪些更改才能创建用于分发的可执行文件,但不能将其安装在我的本地系统上?
-
@theJollySin 我不确定我是否理解您的问题。我的问题是关于通过源代码和 setup.py 方法分发应用程序。也许您正在寻找一种创建独立 .exe 或 .app 的方法?我自己不知道该怎么做,但谷歌找到了一些简单的答案logix4u.net/component/content/article/27-tutorials/…pythonhosted.org/py2app
标签: python unix setuptools egg