如何强制设置.py拆卸模块文件



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来做到这一点,但我认为更专业的方法是使用专用工具。

您应该研究名称空间包装。我认为它将满足您的需求。Python包装管理局的文档解释了部署模块,软件包和名称空间软件包的各种方法。

Python软件包管理非常复杂且非常灵活,因此我绝对不建议您滚动您自己的安装机制。我还建议您采用最简单的方法。就个人而言,我使用了名称空间软件包,单个模块和软件包。我得出的结论是,使用简单的平面包是最可靠的机制。他们还遵循"简单胜于复杂"。且"平坦比嵌套更好"Python Zen的原理。

相关内容

  • 没有找到相关文章

最新更新