关于python:pycharm不识别在开发模式下安装的模块

PyCharm does not recognize modules installed in development mode

我在Pycharm 3.4.1专业版中有两个纯Python项目。第一个,我们称之为p(类似包),它是一个设置工具包(即,使用setup.py、所有要求等,但是它没有上载到pypi或任何其他在线存储库)。第二个,我们称之为EDOCX1(类似于脚本),它只是一个包含两个模块的Python脚本。

项目s配置为使用专用的virtualenv,我们称之为venv

我遇到的问题是:当我像这样在venv中安装项目(包)p时:

1
2
3
$ source /path/to/venv/bin/activate
(venv)$ cd /path/to/p
(venv)$ python3 setup.py develop

在项目s中的pycharm中,import p语句是错误的,消息没有名为p的模块。但是,当我在s中运行脚本时,一切都很好,唯一的问题是pycharm ide抱怨找不到模块。我可以忍受,但这很烦人…

为什么会发生这种情况?它是一个PyCharm的东西还是包装相关的东西?参见下面的新闻。

项目/包p具有以下结构:

1
2
3
4
5
6
7
8
p/
|
+- p/
|  |
|  +- __init__.py
|  +- other subpackages, modules, etc.
+- setup.py
+- README, DESCRIPTION, setup.cfg, etc.

当我将pycharm项目p配置为生活在自己的virtualenv中并以开发模式安装在那里时,一切都正常。

新闻

Pycharm 5.0.4中仍存在此问题。但是,我设法解决了,有点。

出于某些原因,我不得不从pypi安装另一个包。我通过pycharm完成了这个操作,转到file->settings->project:->project解释器,点击绿色的+,找到包,然后按下install package按钮。安装后,由python3 setup.py develop安装的软件包得到了pycharm的认可。很明显,问题是Pycharm没有与现实同步的缓存。

因此,新的问题是,是否可以告诉Pycharm更新其使用的Python环境的缓存?


从Pycharm 2016.1.4(专业版)开始,似乎打开另一个项目(例如,通过"最近打开"),然后打开原始项目,Pycharm会重新索引已安装的软件包,从而识别已开发安装的软件包。

这对我来说足够了。


在项目窗格中,保存p的目录需要标记为源目录。在下可用:右键单击->"将目录标记为"->"源根目录"。

注意:如果在"编辑配置"(默认设置)中选中了选项的相应复选框,则此设置还会在执行期间从"运行"菜单将其添加到pythonpath。


我有一段非常糟糕的时间让Pycharm认识到我刚写的一个模块中的一个类。

问题是Pycharm似乎默认不导入模块类路径,这需要两个单独的修复程序来更正。

步骤1

右键单击模块名称,并将其标记为"源":

enter image description here

步骤2

出于某种原因,在pycharm中,默认情况下,它不会向python路径添加标记为"sources root"的目录。通过打开这个来解决这个问题。

enter image description here

专家额外收费

注意上图中的"启动脚本"。我假设手动将这些行添加到您的python脚本中也会得到相同的结果。

在测试

  • Windows 10 X64。
  • Pycharm社区版2017.2.3。


解决方案

  • 转到"设置"->"项目解释器"。
  • 单击车轮框架(设置齿轮图标)按钮。
  • 在下拉列表中,单击全部显示…。可用的解释程序显示在"项目解释程序"对话框中。

  • 选择所需的解释程序。

  • 在"项目解释器"对话框的工具栏中,单击按钮图标"显示路径"(最后一个选项)。选定解释器的现有路径显示在解释器路径对话框中。

  • 在此处添加包的路径(PIP开发的包)。例如/home/。/repo name

哇!!你很高兴去。

解释每个项目都引用一个解释器,您可以在"设置"->"项目解释器"中找到该解释器。现在这个解释器使用一组路径来查找库。默认情况下,它有站点包和一堆其他路径。现在,由于您使用了pip develop-e或python setup.py develop,所以会创建指向包的存储库的动态链接,而不是指向站点包目录中的包安装。所以我们的包的源路径不在这里,我们需要做的是将源路径添加到解释器的路径中以使其工作。

裁判:

  • https://intellij-support.jetbrains.com/hc/en-us/community/posts/1150000019690-pycharm-not-recognize-development-library-
  • https://www.jetbrains.com/help/pycharm/installing-uninstalling-and-reloading-explorer-paths.html

  • 我也遇到了和你一样的问题。

    Pycharm似乎无法识别由setup.py直接安装的模块,但可以识别由pip安装的模块。最后,我使用pip install-src_-path,但每次修改源代码时都要安装pip。


    问题可能是您的解释器路径。检查解释器指向的位置。在大多数情况下,它是~/pycharmprojects/trials/venv/bin/python,这可能指向作为pycharm一部分安装的python浴缸。

    将python的软链接更改为/usr/bin/python路径,一切正常。


    我刚用pycharm安装了包,问题就解决了。


    对我有用的解决方法:

    在同一窗口(工作区)中打开pycharm中的两个项目。现在打开设置窗口,在"项目->项目相关性"下,您现在可以选择项目s依赖于项目p。导入和自动完成现在可以正常工作了。