这是我的目录结构
--> ProjectDirectory
-->__init__.py
--> BaseDirectory
-->__init__.py
--> AnotherBaseDirectory
-->__init__.py
-->program.py
在program.py
当我给import BaseDirectory
PyCharm无法识别包
所有__init__.py
个文件都包含带有python文件名的__all__
变量
我做错了什么?
答案 0 :(得分:9)
您可以尝试将根目录标记为Sources Root。右键单击根目录,然后单击Mark Directory As -> Sources Root
答案 1 :(得分:1)
答案 2 :(得分:0)
对于遇到这个问题的人,我在Pycharm 2018上的解决方案如下:
想法是以-m
的方式运行我们的python代码,而不是这样做
python -m module.a.b arguments
我们做
runpy.py module.a.b arguments
根据runpy documentation,是脚本
实现
-m
命令行开关,该脚本允许将脚本 使用Python模块名称空间而不是文件系统定位。
这是我们实际执行的步骤:
找到位于系统内部的runpy.py
。就我而言,我使用的是centos,runpy.py
位于/usr/lib64/python3.6/runpy.py
按如下所示设置Pycharm配置:
在我的情况下,我作为模块一部分的脚本为(即module.a.b
)quickstart.cmd.genXML
,脚本的参数为-p .
。
通过这种方式,我们还可以照常针对脚本对该脚本调用pycharm中的python调试器。
参考:
答案 3 :(得分:0)
这里的答案对我不起作用,但以下答案适用(Pycharm社区2018.3):
答案 4 :(得分:0)
我的问题是,程序包名称foo-bar
中有一个连字符,这也带来了其他问题。用下划线代替:foo_bar
立即解决了该问题。
答案 5 :(得分:-1)
您可以尝试将ProjectDirectory
添加到路径中。
要做到这一点,你必须去:设置 - >项目设置 - > Project Interpreter,您可以按+。