我遇到了一个奇怪的问题。
filegetter
是别人开发的模块,用python setup.py install
安装。
这是一个测试文件。
#instance.py
import filegetter
当我跑步时
/home/ynx/miniconda3/bin/python /home/ynx/notebook/instance.py
它说:
Traceback (most recent call last):
File "/home/ynx/notebook/instance.py", line 2, in <module>
import filegetter
ModuleNotFoundError: No module named 'filegetter'
但是如果我运行交互式 shell:python
>>> import filegetter
>>>
有效。 我确定检查使用了相同的 python bin,我可以在文件模式下导入它,为什么以及如何导入它?
这看起来像是
sys.path
的问题。当你运行 Python shell 时,当前目录的路径被添加到 sys.path
,使这个目录中的模块 import
-able。要使一个模块可用于所有 Python 程序,请将其存储在用户站点目录中,您可以使用 找到该目录
$ python -m site --user-site
或者,在用户站点目录中放置一个名为
usercustomize.py
的脚本,它手动添加路径到sys.path
:
import sys
sys.path.append('/path/to')
filegetter.py
的完整路径是/path/to/filegetter.py