这是我的结构脚本
的摘录def create_php_site(name):
"""
Creates a new php installation
"""
from resource.php.git import gitignore
from resource.php.nginx import nginx
当我运行它时,我收到错误“ImportError:没有名为php.git的模块”
但是如果我在函数之外移动“来自resource.php.git import gitignore”,它就可以了。有任何想法吗?
resource.php.git的每一层都有__init__.py
资源/ php /中有git.py:
gitignore = """.DS_Store
._.DS_Store
"""
答案 0 :(得分:0)
您正在遇到命名空间冲突。
您无法命名您的目录resource
,因为有一个名为resource
的标准python模块 - http://docs.python.org/2/library/resource.html
所以当你宣布from resource...
时,所有地狱都会破裂。 Python无法找到php.git
,因为在标准的resource
python模块中,确实没有这样的功能。
我创建了一个类似的示例,但是将resource
目录重命名为myresource
。执行导入然后完美地工作。像这样: -
>>> from myresource.php.git import gitignore
>>> gitignore
'my ignore strings'
重要强>
还请确保__init__.py
目录中有myresource
个文件。