我目前遇到python包装问题和对它的引用。
我的结构如下:
code/
package/
A/
__init__.py
a.py
aa.py
B/
__init__.py
b.py
bb.py
C/
__init__.py
b.py
bb.py
__init__.py #1
documentation/
...
other_stuff/
...
(所有__init__.py
都是空的)
根据我读过的所有内容,我应该能够引用和导入这样的东西(在a.py中):
from package.B.bb import whatever
然而,这不起作用。当我将外部__init__.py
复制到'代码'文件夹,我可以导入这样的东西,但是:
from code.package.B.bb import whatever
对于大多数实际用途来说,这显然是不理想的。
我可以做些什么来实现我的目标行为? (我假设它很简单,我只是缺少它)
(更多细节:我使用的是Python 2.7和PyCharm 4.03)
答案 0 :(得分:1)
code
上列出了sys.path
的父目录,但您需要拥有code
目录*本身added to
sys。 path`。
换句话说,您需要/full/path/for/code
中的sys.path
,而不仅仅是/full/path/for
。
请注意,Python会自动将当前工作目录或脚本的父目录添加到sys.path
;请参阅Command Line Interface Options documentation中列出的各种选项。
例如,位于code
内的Python脚本,当使用python path/for/code/script.py
运行时,会将code
目录添加到sys.path
以进行该运行。