Python Snakefood模块导入通用failu

2024-06-06 14:51:20 发布

您现在位置:Python中文网/ 问答频道 /正文

我想运行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'

以前有人遇到过这样的问题吗?如果是,有没有办法绕过它?在


Tags: 模块项目pyimportsnakefoodmyprojectline虚拟环境
1条回答
网友
1楼 · 发布于 2024-06-06 14:51:20

我也有类似的问题,我的例子中的警告是由于__all__声明而生成的。在

例如

__all__ = ['abc',
           'aaa',
           ...
          ]

以上代码给出警告:

^{pr2}$

我修改了snakefood\lib\python\find.py中的警告常量ERROR_IMPORT,以添加发生错误的文件名以及行号和模块名。这样你就可以针对特定的文件和行号来解决问题。在

希望这有帮助!在

相关问题 更多 >