我想运行snakefood(一个基于AST的依赖关系图分析器;可以找到源代码here)。我的项目有一个包含几个级别的Python包的结构,如下所示:
myproject
|code
|Utils
|AdaptedConfigParser
Configs_Parser.py
...
...
main.py
但是,当我开始在项目的根目录上运行snakefood时,它声称它找不到要导入的Python包中的模块:
^{pr2}$我试图通过向lib/python2.7/site-packages
添加一个带有项目根的.pth
文件来解决这个问题
现在,当我在虚拟环境从任何地方激活的情况下调用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
>>>
而且效果很好。在
然而,当snakefood在虚拟环境中启动时,它仍然返回相同的错误。在
^{pr2}$在这一点上,我甚至不明白进口的问题从何而来。在
除此之外,当--internal
标志被删除时,它甚至无法导入pythonbuiltin
模块,这对我来说毫无意义:
WARNING : Line 80: Could not import module 'builtins'
WARNING : Line 190: Could not import module 'pyamg'
以前有人遇到过这样的问题吗?如果是,有没有办法绕过它?在
我也有类似的问题,我的例子中的警告是由于
__all__
声明而生成的。在例如
以上代码给出警告:
^{pr2}$我修改了
snakefood\lib\python\find.py
中的警告常量ERROR_IMPORT
,以添加发生错误的文件名以及行号和模块名。这样你就可以针对特定的文件和行号来解决问题。在希望这有帮助!在
相关问题 更多 >
编程相关推荐