【发布时间】:2017-06-29 11:22:20
【问题描述】:
Python 版本:2.7.12
我创建了自己的 Python 模块。这是一个简单的结构,我想在sys.path 指向的目录之一中精确复制:
|-- setup.py
|-- mynamespace/
| |-- __init__.py
| |-- mymodule/
| | |-- __init__.py
| | |-- mymodule.py
因为是简单的项目,setup.py 包含列表:
py_modules = ['mynamespace.mymodule.mymodule']
我可以安装模块打字:
$ sudo python setup.py install
我注意到 setuptools 在安装过程中打印出了路径。当我去那里时,我可以看到mymodule-*.egg 文件。感谢他,我能够从任何本地化加载我的模块。但是.egg 文件类似于存档(当我将其扩展名更改为.zip 时,我可以解压缩文件并找到目录结构)。我知道该文件带来了跨平台兼容性解决方案。
我认为拥有解压目录是更好的解决方案。在不久的将来,我将在mynamespace 目录中发布另一个模块:
>>> from mynamespace import mymodule
>>> from mynamespace import mymodule1
>>> from mynamespace import mymodule2
...
我知道bash,我可以编写自己的安装脚本。我什至可以使用 Python 来做到这一点,但我认为更专业的方法是使用专用工具。
【问题讨论】:
-
实际上
.egg文件是一个包含你的包的目录。因此,如果您想访问已安装的模块,您只需导航到/.../site-packages/mymodule-*.egg。它应该包含您的包为mymodule,安装信息为EGG-INFO。
标签: python installation setuptools setup.py