gpt4 book ai didi

Python Snakefood 模块导入普遍失败

转载 作者:太空宇宙 更新时间:2023-11-04 05:53:39 25 4
gpt4 key购买 nike

我想运行 snakefood (基于 AST 的依赖图分析器;可以找到源代码 here )。我的项目有一个涉及多个级别的 Python 包的结构,如下所示:

myproject
|code
|Utils
|AdaptedConfigParser
Configs_Parser.py
...
...
main.py

但是,当我开始在我的项目的根目录上运行 snakefood 时,它声称它无法从我正在导入的 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
>>>

而且效果很好。

但是,当在该虚拟环境中启动 snakefood 时,它仍然会返回相同的错误。

$ 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'

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

最佳答案

我遇到了类似的问题,原来我的案例中的警告是由于 __all__ 声明而生成的。

例如

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

上面的代码给出了警告:

WARNING     :     Line xx: Could not import module 'abc'
WARNING : Line xx: Could not import module 'aaa'

我修改了 snakefood\lib\python\find.py 中的警告常量 ERROR_IMPORT 以添加发生错误的文件的名称以及行号和模块名称。这样你就可以定位特定的文件和行号,几乎可以找出问题所在。

希望这对您有所帮助!

关于Python Snakefood 模块导入普遍失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28910450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com