问题已解决。
如果将路径添加到PYTHONPATH,则可以在该路径中导入软件包。但是我在做的是尝试导入该路径,这是错误的。
因此,在这种情况下,我在路径上创建了一个子目录,并且该目录现在可以导入包了。
仍然我必须将路径包含在 file> settings>项目结构中作为源。
================================================ =========================
我在Anaconda Ubuntu16.04中使用python3.6。
我在/ home / gph / pyutils_gph路径中有自己的软件包。
该目录中包含utils.py文件。我在PYTHONPATH中包含了此路径。
我能做
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from pyutils_gph import utils
>>>
在终端中。但是相同的导入代码在pycharm中显示错误。它可以找到我的包裹,并用红线表示。
我该怎么做才能让pycharm知道我自己的包裹?
================================================ =========================
我打开pycharm内的终端,得到如下输出。我在PYTHONPATH中有该目录,但无法导入。怎么了?
Python 3.6.8 |Anaconda, Inc.| (default, Dec 30 2018, 01:22:34)
[GCC 7.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path
['', '/home/gph/pyutils_gph', '/home/gph/Desktop/BorderSecure/detection_cnn/src', '/home/gph/anaconda3/envs/py36_torch0.4/lib/python36.zip', '/home/gph/anaconda3/envs/py36_torch0.4/lib/python3.6', '/home/gph/anaconda3/envs/py36_torch0.4/lib/python3.6/lib-dynload', '/home/gph/anaconda3/envs/py36_torch0.4/lib/python3.6/site-packages']
>>> from pyutils_gph import utils
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ModuleNotFoundError: No module named 'pyutils_gph'
>>>
答案 0 :(得分:0)
如果您在/home/gph/pyutils_gph
中有PYTHONPATH
,并且您进行了from pyutils_gph import utils
,则它正在寻找
"/home/gph/pyutils_gph/" + "pyutils_gph/utils.py`
因为from pyutils_gph import utils
的意思是pyutils_gph/utils.py
,并将它添加到PYTHONPATH
的每条路径中
您必须添加到PYTHONPATH
/home/gph
然后它将给出
"/home/gph/" + "pyutils_gph/utils.py`
所以您获得正确的路径
如果您在文件夹/home/gph
中运行Anaconda,则第一版可以在终端中运行,因为Python
也在当前工作目录中搜索软件包,因此它直接在pyutils_gph/utils.py
中找到/home/gph
,而无需使用PYTHONPATH
如果您要转到其他文件夹,那么它将找不到本地pyutils_gph/utils.py
,并且会出现相同的错误。