这是我的目录结构
--> ProjectDirectory
-->__init__.py
--> BaseDirectory
-->__init__.py
--> AnotherBaseDirectory
-->__init__.py
-->program.py
内部program.py
当我给出import BaseDirectory
时
PyCharm无法识别包
所有__init__.py
文件都包含带有python文件名的__all__
变量
我做错了什么?
8条答案
按热度按时间20jt8wwn1#
您可以尝试将根目录标记为源根目录。右键单击根目录,然后单击
Mark Directory As -> Sources Root
ercv8c1e2#
如果我们将
__init__.py
设置为Text
文件类型,Pycharm不会索引它。我们需要从Text
文件类型中删除
__init__.py
xzlaal3s3#
我的问题是我在包名
foo-bar
中有一个连字符,这也带来了其他问题。foo_bar
立即解决了这个问题。bfhwhh0e4#
对于谁挣扎与这个问题,我找到我的解决方案Pycharm 2018如下:
我们的想法是以
-m
的方式运行python代码,而不是我们有
根据runpy documentation,它是
实现了
-m
命令行开关,该开关允许使用Python模块名称空间(而不是文件系统)定位脚本。以下是我们实际执行的步骤:
runpy.py
。在我的例子中,作为模块一部分的脚本是(即
module.a.b
)quickstart.cmd.genXML
,脚本的参数是-p .
。这样,我们也可以像往常一样在pycharm内部对脚本调用python调试器。
参考编号:
idfiyjo85#
这里的答案对我不起作用,但下面的答案对我起作用(Pycharm community 2018.3):
1.从PyCharm分离项目
1.关闭PyCharm
1.从项目中删除.idea文件夹
1.启动PyCharm
1.重新打开项目并附加到当前窗口
1.突然项目被识别为包
blpfk2vs6#
最终为我解决了这个问题,因为init.py没有关联为文本文件,将按内容自动检测文件类型,这是在识别的文件类型列表的开头附近,并从列表中删除init.py。
8fsztsew7#
如果高亮显示对
__init__.py
不起作用,这意味着PyCharm认为它是一个不同的类型,所以包将不起作用。文件名模式可以在设置(
File > Settings
)中的Editor > File Types
部分找到__init__.py
可以在类别中,如Text或File type auto-detected by file content
。您不需要搜索,只需将__init__.py
放到Python类别中,一切都会恢复正常(在抱怨init文件已经在其他类别中之后)。如果包含init文件目录没有适当的名称,则可能会出现其他问题。如果您坚持使用PEP8文件命名约定,则必须确保安全,但这些名称只是可接受文件名的子集。
nzrxty8p8#
您可以尝试将
ProjectDirectory
添加到路径中。为此,您必须转到:设置-〉项目设置-〉项目解释器,在那里你可以添加到路径按+。