我有一个目录结构
├── 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解决引用?
当前回答
在遵循公认的答案后,做以下的事情为我解决了这个问题:
文件→设置→项目<您的目录/项目>→项目依赖项
选择未解决导入的文件所在的目录/项目,并选中复选框,告诉Pycharm该项目依赖于您的其他项目。
我的文件夹层次结构与问题中的略有不同。我的是这样的
├── MyDirectory
│ └── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
告诉Pycharm src依赖MyDirectory解决了我的问题!
其他回答
如果你有python解释器不安装的问题,请注意 包,只需更改文件夹PycharmProjects的权限 C: \用户'username \ PycharmProjects 致每一个人
虽然所有的答案都很有帮助,但有一小部分信息应该明确解释:
本质上,具有多个层次目录的项目作为具有某些属性的包工作。 要导入自定义本地创建的类,我们需要导航到包含.py文件的目录,并在那里创建一个__init__.py(空)文件。
这之所以有用,是因为需要这个文件才能使Python将该目录视为包含包的目录。干杯!
在遵循公认的答案后,做以下的事情为我解决了这个问题:
文件→设置→项目<您的目录/项目>→项目依赖项
选择未解决导入的文件所在的目录/项目,并选中复选框,告诉Pycharm该项目依赖于您的其他项目。
我的文件夹层次结构与问题中的略有不同。我的是这样的
├── MyDirectory
│ └── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ...
告诉Pycharm src依赖MyDirectory解决了我的问题!
这里所有的东西我都试过两次,甚至更多。我最终解决了这个问题,做了一些我在网上从未见过的事情。如果你去>编辑器>文件类型的设置,在底部有一个“忽略文件和文件夹”行。在我的例子中,我忽略了“venv”,这是我的虚拟环境的名字。所以我去掉了venv;从目录列表中忽略,瞧!!我终于解决了这个问题。实际上,我在这个项目中遇到的所有导入问题都得到了解决。
BTW, I had installed each and every package using PyCharm, and not through a terminal. (Meaning, by going to Settings>Interpreter...). I had invalidated cache, changed 'Source Root', restarted PyCharm, refreshed my interpreters paths, changed interpreters, deleted my venv... I tried everything. This finally worked. Obviously there are multiple problems going on here with different people, so this may not work for you, but it's definitely worth a shot if nothing else has worked, and easy to reverse if it doesn't.
在新版本的pycharm中,只需右键单击想要导入文件的目录或python包,然后单击“标记目录为”->“源根”