我的默认Python二进制文件设置为带有Anaconda Python分发版的二进制文件。这可以在/home/karnivaurus/anaconda/bin/python
找到,我已将此设为默认值,方法是在.bashrc
文件中添加以下内容:export PATH=/home/karnivaurus/anaconda/bin:$PATH
。
我还有一个名为caffe
的Python包,位于/home/karnivaurus/caffe/distribute/python
,我已将此添加到包搜索路径中,方法是在.bashrc
文件中添加以下内容:{ {1}}。
现在,我有一个名为export PYTHONPATH=${PYTHONPATH}:/home/karnivaurus/caffe/distribute/python
的简单Python文件,其中包含以下内容:
test.py
如果我通过在终端中输入import caffe
print "Done."
来运行此操作,它可以正常运行,打印出来"完成。"。我遇到的问题是当我在PyCharm IDE中运行它时。在PyCharm中,我将解释器设置为python test.py
。但是当我在PyCharm中打开/home/karnivaurus/anaconda/bin/python
并在IDE中运行该文件时,我收到以下错误:
test.py
所以我的问题是:为什么PyCharm在运行Python脚本时找不到ImportError: No module named caffe
模块,但是当我从终端运行脚本时可以找到它?
谢谢!
答案 0 :(得分:3)
有一些事情可以导致这种情况。要进行调试,请修改您的test.py
,如下所示:
# Is it the same python interpreter?
import sys
print(sys.executable)
# Is it the same working directory?
import os
print(os.getcwd())
# Are there any discrepancies in sys.path?
# this is the list python searches, sequentially, for import locations
# some environment variables can fcuk with this list
print(sys.path)
import caffe
print "Done."
在两种情况下再次尝试以查找运行时环境中的差异。
编辑:由{PYTHONPATH环境变量引起的sys.path
存在差异。这是通过.bashrc文件在shell中设置的,但未在PyCharm的运行时环境配置中设置。
答案 1 :(得分:1)
对于其他选项,您可以使用pycharm by terminal。并预先导出相应的环境路径。这适合我。我认为这比在代码中进行一些更改要好。调试后,您需要通过终端运行代码。
例如,在终端类型中:
$ export LD_LIBRARY_PATH=~/build_master_release/lib:/usr/local/cudnn/v5/lib64:~/anaconda2/lib:$LD_LIBRARY_PATH
$ export PYTHONPATH=~/build_master_release/python:$PYTHONPATH
然后通过charm运行pycharm(pycharm可以通过charm bash进行软链接):
$ charm
答案 2 :(得分:0)
这可能是一个多余的答案,但是我认为明确指出导致此错误的原因很重要。 它发生在我身上很多次,并通过确保将IDE(pycharm或vscode或任何其他)设置为代码所在的相同工作目录来解决此问题。
例如:我在train.py
目录中有两个文件config.py
和mlproject/src
。我正在尝试在import config
train.py
**在/mlproject/
目录中运行时,尝试导入配置时出现错误**
(ml) dude@vscode101:~/mlproject$ python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import config
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'config'
>>>
在/ mlproject / src /`目录中运行时,我能够成功导入配置
(ml) dude@vscode101:~/mlproject/src$ python
Python 3.7.6 (default, Jan 8 2020, 19:59:22)
[GCC 7.3.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import config
>>>