Python 无法将模块导入虚拟环境中的文件
Cretaed virtualenv like:Python 无法将模块导入虚拟环境中的文件,python,python-3.x,Python,Python 3.x,Cretaed virtualenv like:python3-m venv venv\u name 然后激活virtualenv:源代码完整/path/to/venv\u name/bin/activate 在此(激活的)环境中安装了psycopg2,如: sudo apt-get build-dep python3-psycopg2 pip install psycopg2-binary 然后,如果我在终端中打开这个文件夹,切换到python并尝试:import psycopg2,它就可以
python3-m venv venv\u name
然后激活virtualenv:源代码完整/path/to/venv\u name/bin/activate
在此(激活的)环境中安装了psycopg2,如:
sudo apt-get build-dep python3-psycopg2
pip install psycopg2-binary
然后,如果我在终端中打开这个文件夹,切换到python
并尝试:import psycopg2
,它就可以工作了
然后我将文件test.py
创建到venv_name
文件夹中,并添加到该文件中:import psycopg2
尝试使用pycharm执行此文件,但出现错误:没有名为'psycopg2'的模块。
所以virtualenv被激活并安装了模块
psycopg2
,但为什么我不能在这个virtualenv中将模块导入到文件中?这意味着PyCharm使用了不同的解释器,即不是来自您的venv\u名称
。您可以将其设置为使用python fromvenv_name
with
PyCharm
->首选项
->项目:Python解释器
->在“Python解释器”字段中选择“全部显示”->+
添加新的虚拟环境
->现有环境
->选择路径到完整/路径/to/venv_name/bin/Python
另一件事:您的python脚本不应该位于venv_name
目录中。它们应该在它旁边。这意味着PyCharm使用不同的解释器,即不是来自您的venv_name
。您可以将其设置为使用python fromvenv_name
with
PyCharm
->首选项
->项目:Python解释器
->在“Python解释器”字段中选择“全部显示”->+
添加新的虚拟环境
->现有环境
->选择路径到完整/路径/to/venv_name/bin/Python
另一件事:您的python脚本不应该位于venv_name
目录中。它们应该与之并驾齐驱。另请参见Yevhen的回复,但需要指出的是:pip和pip3并没有使用相同的python,特别是如果导入在“python”上有效,但在“python3”上无效。@rasjani这不一定正确pip
可以是pip3
的别名,但不必是。与python
相同,它可以是python3
的别名。准确地说,这些别名也可以是独立的,即,pip
可以是pip3
的别名,而python3
不是python3
的别名,反之亦然。但考虑到若在执行pip安装时激活了venv,则可能会提示该软件包进入了全局位置,而不是进入venv。。因此,有可能是不同的解释器。另请参见Yevhen的回复,但需要指出的是:pip和pip3使用的不是同一个python,特别是如果导入在“python”上工作,而不是在“python3”上工作。@rasjani这不一定是真的pip
可以是pip3
的别名,但不必是。与python
相同,它可以是python3
的别名。准确地说,这些别名也可以是独立的,即,pip
可以是pip3
的别名,而python3
不是python3
的别名,反之亦然。但考虑到若在执行pip安装时激活了venv,则可能会提示该软件包进入了全局位置,而不是进入venv。。所以,有可能是不同的翻译。