【发布时间】:2015-03-07 01:40:46
【问题描述】:
我想运行 snakefood(一个基于 AST 的依赖图分析器;源代码可以在 here 找到)。我的项目有一个涉及多个级别的 Python 包的结构,如下所示:
myproject
|code
|Utils
|AdaptedConfigParser
Configs_Parser.py
...
...
main.py
但是,当我开始在我的项目的根目录上运行蛇食时,它声称它无法从我正在导入的 Python 包中找到模块:
$ sfood --internal --follow --ignore-unused ./PycharmProjects/myproject/ > ~/static_analysis.txt
WARNING : Line 9: Could not import module 'myproject.Utils.AdaptedConfigParser.Configs_parser'
我试图通过将带有项目根目录的.pth 文件添加到lib/python2.7/site-packages 来解决它
现在,当我在从任何地方激活该虚拟环境的情况下调用 python 时,我可以执行以下操作:
$ python
Python 2.7.6rc1 (default, Jan 19 2014, 18:57:40)
[GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import myproject.Utils.AdaptedConfigParser.Configs_parser
>>>
而且效果很好。
但是,当使用该虚拟环境启动蛇食时,它仍然返回相同的错误。
$ sfood --internal --follow --ignore-unused ./PycharmProjects/myproject/ > ~/static_analysis.txt
WARNING : Line 9: Could not import module 'myproject.Utils.AdaptedConfigParser.Configs_parser'
此时我什至不明白导入问题可能来自哪里。
除此之外,当 --internal 标志被拿走时,它甚至无法导入 python builtin 模块,这对我来说没有任何意义:
WARNING : Line 80: Could not import module 'builtins'
WARNING : Line 190: Could not import module 'pyamg'
以前有人遇到过这样的问题吗?如果是,有没有办法绕过它?
【问题讨论】:
标签: python python-2.7 python-import pythonpath