我正在开发一个python包来处理我工作室的工作流程,我正在按工作区域组织我的项目。此外,由于这个包装不断增长和扩展,我有一个' dev'包裹和发布的'一。 我每次都有一些重要的新功能,并且我认为代码是稳定的,我会复制来自“开发”的文件。到' pub',让它们可供团队使用。 我喜欢这个系统,因为它可以保持事物的分离和代码的清洁。
我的项目结构如下:
/scripts_dir
/dev
__init__.py
/anim
__init__.py
cls.py
/char
__init__.py
cls.py
/pub
__init__.py
/anim
__init__.py
cls.py
/char
__init__.py
cls.py
请注意,scripts_dir没有init.py文件,因此它不属于该软件包。它只是一个容器文件夹。
我遇到的唯一问题是包装本身的进口。现在,每当我需要导入一个不在同一文件夹中的模块时,我需要指定完整路径。所以我被迫包括主包名称:
import dev.anim.cls as acl
这意味着每次我想发布我的代码时,我都要进入每个文件并将import语句更改为
import pub.anim.cls as acl
我已经看到在python 2.5+中可以以
的形式使用相对导入from ..anim import cls
cls.someFunction()
这是gettin'非常接近我想去的地方。但是通过这样做,我失去了为模块设置别名的能力,在某些情况下甚至有机会设置命名空间(我总是尝试使用它来避免冲突)!在我的例子中,每个文件夹中的模块都具有相同的名称,因此我需要文件夹的命名空间(anim,char,...)
有谁知道处理这个问题的更好方法?是否可以使用别名进行相对导入?
非常感谢任何帮助!
答案 0 :(得分:0)
如何使用正确的版本控制软件(如git或mercurial ......)呢?