我在PyCharm 3.4.1专业版中有两个纯python项目。第一个,我们称之为p
(如包),结构为setuptools包(即使用setup.py,所有要求等,但不会上传到pypi或任何其他在线存储库)。第二个,我们称之为s
(如脚本),只是一个python脚本以及两个模块。
项目s
(在PyCharm中)配置为使用专用的virtualenv,我们称之为venv
。
我遇到的问题如下:当我在p
中安装项目(包)venv
时,这样:
$ 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的东西还是包装相关的东西?见下面的 NEWS 。
项目/包p
具有以下结构:
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 - >设置 - >项目: - > Project Interpreter,点击绿色+
,找到包并按下Install Package按钮。安装后,python3 setup.py develop
安装的软件包得到了PyCharm的认可。显然问题是PyCharm没有一些缓存与现实同步。
所以新的问题是,PyCharm可以被告知更新其有关使用过的python环境的缓存吗?
答案 0 :(得分:18)
从Pycharm 2016.1.4(专业版)开始,似乎打开一个不同的项目(例如通过Open Recent)然后打开原来的项目使得Pycharm重新索引已安装的软件包,从而识别开发安装的软件包。
这对我来说已经足够了。
答案 1 :(得分:17)
在项目窗格中,保存p的目录需要标记为source。可用于:右键单击 - > “Mark Directory As” - > “来源根源”。
注意:如果在“编辑配置”(默认)中选中了相应的选项复选框,则此设置也会在运行菜单执行期间将其添加到PYTHONPATH。
答案 2 :(得分:12)
我有一段时间让PyCharm认出我刚刚编写的模块中的一个类。
问题是PyCharm似乎默认不导入模块类路径,这需要两个单独的修复来纠正。
右键单击模块名称,并将其标记为" Source":
出于某种原因,默认情况下,在PyCharm中,它实际上并没有添加标记为" Sources Root"到Python路径。通过打开它来修复此问题。
注意"起始脚本"在上图中。我假设手动将这些行添加到Python脚本中也会得到相同的结果。
答案 3 :(得分:2)
<强>解决方案强>
在下拉列表中,单击全部显示....可用的口译员显示在项目口译员对话框中。
选择所需的口译员。
在“项目解释器”对话框的工具栏中,单击按钮图标显示路径(最后一个选项)。所选解释器的现有路径显示在“解释器路径”对话框中。
瞧!!你已准备好出发。
<强>解释强>
每个项目都指的是一个解释器,你可以在 settings-&gt;项目解释器中找到它。现在,这个解释器使用一堆Paths来查找库。默认情况下,它有站点包和一堆其他路径
现在,既然您使用了 pip develop -e 或 python setup.py develop ,就会创建一个动态链接,指向您的包的存储库,而不是site-packages目录中的包安装。所以我们的包的源路径不在这里,我们需要做的是将我们的源路径添加到解释器的路径以使其工作
参考:
答案 4 :(得分:1)
我和你的一样有同样的问题。
似乎pycharm无法识别setup.py直接安装的模块,但可以识别由pip安装的模块。 最后,我使用 pip install src_path ,但每次修改源代码时都要 pip install 。
答案 5 :(得分:0)
对我有用的解决方法:
在同一窗口(工作区)中打开PyCharm中的两个项目。现在打开设置窗口,在“项目 - &gt;项目依赖项”下,您现在可以选择项目s
取决于项目p
。导入和自动完成现在可以正常工作。
答案 6 :(得分:0)
我刚刚使用Pycharm安装了软件包,然后问题解决了。
答案 7 :(得分:0)
问题可能是你的翻译路径。检查解释器指向的位置。在大多数情况下它是〜/ PycharmProjects / trials / venv / bin / python,这可能指向作为Pycharm的一部分安装的python浴缸
将python的softlink更改为你的/ usr / bin / python路径,事情应该可以正常工作