我有一个包含多个Python模块的项目,每个模块都有自己的虚拟环境。
项目结构:
data-reader (Python module)
data_reader
reader.py
venv (virtual environment directory for data-reader)
requirements.txt
data-writer (Python module)
data_writer
writer.py
venv (virtual environment directory for data-writer)
requirements.txt
commons (Python module)
commons
utils.py
venv (virtual environment directory for commons)
requirements.txt
setup.py
我想在两个模块中安装commons
作为依赖项:data-reader
和data-writer
,最好是可编辑的项目依赖项。
我在公共区域创建了setup.py
,并在以下两个模块中向requirements.txt
添加了以下要求:
-e commons
当我激活其中一个模块的虚拟环境并安装其要求时,我可以使用终端在Python解释器中运行来自commons
的脚本,这是期望和期望的结果,但在{{1 IDE,我收到一个错误,强调了import语句,并显示以下错误消息:Intellij IDEA
Unresolved reference 'commons'
我不知道from commons import utils
或我正在使用的方法中是否存在问题。
答案 0 :(得分:0)
问题似乎与Intellij / Pycharm有关。
您应该选择Pycharm使用的解释器以匹配虚拟环境之一。
如果不这样做,Pycharm将使用默认的python解释器,其中未安装要导入的库。
您可以使用settings -> preference -> Project Interpreter (in the left menu bar)
进行选择。
然后为其中的三个添加本地virtualenv到特定的python项目。
如果有帮助,则官方文档为:
https://www.jetbrains.com/help/pycharm/creating-virtual-environment.html
答案 1 :(得分:0)
一段时间以来,我正在为其他读者发布答案。事实证明,这种方法对我们很有益,并且到目前为止效果很好。
问题出在IntelliJ / PyCharm,事实证明这是一个非常古老的问题,仍未正确解决:https://youtrack.jetbrains.com/issue/PY-976。问题本身中报告了一些解决方法。我个人还没有尝试过所有方法,但是到目前为止我没有尝试过。
此处提供另一个线程:PyCharm does not recognize modules installed in development mode