【发布时间】:2018-04-27 10:55:27
【问题描述】:
我正在研究一种将 python 模块作为单个 egg 文件分发的方法。假设我有一个名为my_module 的python 模块,并且我想编写一个python 脚本来为我的模块生成一个egg 文件。于是我找到了setuptools。
from setuptools import setup
setup(
name="my_module",
packages=[my_package],
version="1.0",
)
在这些问题上我有一些缺点:
- 此脚本应以
python setup.py install运行。换句话说,我需要指定命令行参数。相反,我想在我的 python 代码中自动生成我的 egg 文件,它可以自己控制命令行参数。 - 结果文件被输出到安装程序的文件目录中。我想控制脚本中的输出目录路径。
- 脚本创建了我实际上并不需要的
build和dist文件夹。也许,我可以通过在调用setup后删除文件夹来解决它。
我应该如何使用setuptools 来解决上述问题?
还有如何从给定的 egg-file 加载我的模块?
假设我有以下模块:
# my_module.py
class MyClass:
def __init__(self):
self._x = None
def set_x(self, x):
self._x = x
def get_x(self):
return self._x
我写了这个脚本来创建一个鸡蛋文件:
# create_egg.py
from setuptools import setup
setup(
name="my_module",
packages=['my_module'],
version="1.0",
)
当我运行 creage_egg.py: 时出现这样的错误:
$ python3 create_egg.py
usage: create_egg.py [global_opts] cmd1 [cmd1_opts] [cmd2 [cmd2_opts] ...]
or: create_egg.py --help [cmd1 cmd2 ...]
or: create_egg.py --help-commands
or: create_egg.py cmd --help
error: no commands supplied
【问题讨论】:
-
这是一个很好的问题,但对于这个网站来说有点“过于宽泛”。如果你在尝试实现你想要的东西时对问题进行细分并询问具体问题,你会得到更好的答案。
-
@PauloScardine 感谢您的建议。稍后我会修改我的问题。
-
你应该运行
python3 create_egg.py bdist_egg。运行python3 create_egg.py --help-commands以获取其他命令
标签: python setuptools egg