我有一个目录结构
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
我可以使用sys.path.insert()访问网络模块。
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
但是,pycharm抱怨它无法访问该模块。我如何教pycham解决引用?
我有一个目录结构
├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
我可以使用sys.path.insert()访问网络模块。
import sys
import os.path
sys.path.insert(0, "./src")
from networkAlgorithm import *
但是,pycharm抱怨它无法访问该模块。我如何教pycham解决引用?
当前回答
在SRC文件夹中检查__init__.py文件 添加SRC文件夹作为源根目录 然后确保将源代码添加到PYTHONPATH(参见上面) 在PyCharm菜单中选择:File——> Invalidate Caches——> Restart
其他回答
虽然所有的答案都很有帮助,但有一小部分信息应该明确解释:
本质上,具有多个层次目录的项目作为具有某些属性的包工作。 要导入自定义本地创建的类,我们需要导航到包含.py文件的目录,并在那里创建一个__init__.py(空)文件。
这之所以有用,是因为需要这个文件才能使Python将该目录视为包含包的目录。干杯!
在遵循公认的答案后,做以下的事情为我解决了这个问题:
文件→设置→项目<您的目录/项目>→项目依赖项
选择未解决导入的文件所在的目录/项目,并选中复选框,告诉Pycharm该项目依赖于您的其他项目。
我的文件夹层次结构与问题中的略有不同。我的是这样的
├── MyDirectory
│ └── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
告诉Pycharm src依赖MyDirectory解决了我的问题!
我克隆的项目有一个名为modules的目录,并成功地在import this as that的代码中使用了那里的文件,但Pycharm无法跳转到那些代码片段,因为它无法识别导入。
将下面设置部分中的模块文件夹标记为源解决了这个问题。
很多时候发生的事情是插件没有安装。如。
如果你正在开发一个django项目,并且pyCharm中没有安装django插件,它会显示错误“unresolved reference”。 参考: https://www.jetbrains.com/pycharm/help/resolving-references.html
在我的例子中,使用Pycharm 2019.3,问题是我忘记向我想导入的文件添加扩展名“.py”。一旦添加,错误就会消失,而不需要使缓存无效或任何其他步骤。