我有一个目录结构
1 2 3 4
| ├── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ... |
我可以用sys.path.insert()访问网络模块。
1 2 3 4
| import sys
import os.path
sys.path.insert(0,"./src")
from networkAlgorithm import * |
但是,Pycharm抱怨它无法访问模块。我如何教Pycham解决参考问题?
- SRC文件夹是否有__init__.py文件?
- @帕芬:不,不是。
- @puffingdi src文件夹需要这个init.py文件吗?
- 是的,以便python识别包:stackoverflow.com/questions/42094723/…
- 我重命名了类名并继续处理它。当我点击run时,出现了这个错误,完全忘记了重命名,并尝试在导入期间查找pycharm建议。该死,建议是区分大小写的!-Python新手!!
型
手工添加,正如您所做的,确实是一种方法,但有一个更简单的方法,那就是简单地告诉pycharm您想要添加src文件夹作为源根,然后将源根添加到您的python路径。
这样,您就不必将事情硬编码到解释器的设置中:
型
&公司氧化镁
百万千克1然后确保向您的PYTHONPATH添加源:百万千克1
型
氧化镁
型
&公司氧化镁
通过这种方式,您可以添加您想要的任何内容作为源根,这样事情就可以简单地工作。但是,如果将其取消标记为源根目录,则会得到一个错误:
&(b)不适用于氧化镁
- 如果您使用的是带Intellij的python插件,这也可以工作。
- 这个解决方案有效。问题在于,当另一个程序员从SVN中检索代码时,她必须再次进行相同的设置,以消除"未解决的引用"错误提示。
- @本林是真的,但是对于所有其他的解决方案,你也必须这样做。
- @gamesbrainiac的解决方案是,IDE可以解析"sys.path.insert(0,"../src")将其添加到这个特定文件的pythonpath中,然后进行适当的语法分析。
- 您还需要确保您的内容根路径是正确的。在Pycharm 5中,您可以在Preferences->Project->Project Structure中找到它。
- 你是怎么截图的?真是太好了!
- 奇怪的是,子目录没有被考虑在内。例如,如果在src下,我们有views文件夹,其中我有myview.py文件夹,那么在尝试from src.views.myview import 时,我仍然会收到未解决的引用错误…
- 只是为了记录:如果您使用的是django,那么根文件夹应该是名为projectName的文件夹,里面有manage.py(而不是虚拟env等的文件夹)。
- 我必须将我的"trunk"文件夹(在SVN中)设置为源根目录。然后对我有用。当我尝试上面的文件夹时,由于一些奇怪的原因,它不起作用。
- 这很管用。我只需要添加多个文件夹作为源路由。谢谢
- @robmayoff提供的解决方案也有效。安装了python插件,问题就消失了。谢谢
- 在IntelliJ IDEA 2016+中,此选项已被重新定位;请参见@aerohil的答案
- 如果您在pythonpath中添加源代码的第二步有什么区别?在所有情况下,步骤1(将src添加为源内容根)和步骤2(将源添加到pythonpath)都是必需的吗?
- 这就是为什么你有4万个代表,很好的答案。
型百万千克1检查
src文件夹中的
__init__.py文件百万千克1百万千克1添加
src文件夹作为源根目录百万千克1百万千克1然后确保向您的
PYTHONPATH添加源(见上文)百万千克1百万千克1在pycharm菜单中,选择:文件——>使缓存无效/重新启动百万千克1
- 最后一步是我解决方案中唯一缺少的东西。被接受的答案可能会加上这个。
型
如果有人仍在关注这个问题,当我尝试的时候,这个公认的答案仍然适用于pycharm 2016.3。用户界面可能已更改,但选项仍然相同。
也就是说,右键单击根文件夹-->"将目录标记为"-->源根目录
型
在测试了所有的解决方法之后,我建议您看看Settings -> Project -> project dependencies并重新安排它们。
。
- 这对我很有效。我在那里安装了pygame,没有更多未解决的参考问题!
型
通常,$pythonpath用来教python解释器查找必要的模块。Pycharm需要优先添加路径。
。
型
一般来说,这是一个丢失的包问题,只需将插入符号放在未解决的引用中,然后按Alt+Enter以显示选项,那么您应该知道如何解决它。
型
在遵循接受的答案之后,执行以下操作为我解决了问题:
File、Settings、Project 、Project Dependencies。
选择具有未解析导入的文件所在的目录/项目,并选中该框以告诉Pycharm该项目依赖于其他项目。
我的文件夹层次结构与问题中的稍有不同。我的就是这样
1 2 3 4 5
| ├── MyDirectory
│ └── simulate.py
├── src
│ ├── networkAlgorithm.py
│ ├── ... |
告诉Pycharm SRC依赖于MyDirectory为我解决了这个问题!
型
通过pycharm安装(与社区版一起使用)。打开Settings > Project > Project Interpreter,然后单击下面屏幕截图中的绿色+图标。在打开的第二个对话框中,输入包名称并单击"安装包"按钮。
。
型
请检查您使用的口译员是否正确。我得到错误"未解决的引用"django",为了解决这个问题,我从项目设置中更改了项目解释器(将python 3更改为python 2.7):选择Project,转到File(文件)->Settings(设置)->Project:->Project Interpreter(项目解释器)->Brows(浏览),然后选择正确的版本或解释器(例如/usr/bin/python2.7)。
型
很多时候,插件没有安装。例如
如果您正在开发一个Django项目,而您没有在Pycharm中安装Django插件,它会说错误"未解决的引用"。参考:https://www.jetbrains.com/pycharm/help/resolving-references.html网站
型
在我的例子中,问题是我使用的是Virtual environment,它没有访问全局站点包的权限。因此,解释器不知道新安装的包。
要解决此问题,只需编辑或重新创建虚拟解释器并勾选Inherit global site-packages选项。
氧化镁
型
Pycharm使用Venv。在Venv的控制台中,您应该显式安装软件包,或者进入settings -> project interpreter -> add interpreter -> inherit global site-packages。