我在我的主目录中安装了Python3.4.3,因此它位于/home/jdoe/.local/bin/python3
下,并通过执行pip install --user package_name
来安装一些外部模块。但是现在编写我的python脚本时找不到包python,因为它正在查找usr/lib
,但包不在那里。如何导入模块以便python查看我个人主目录中安装的站点包?
答案 0 :(得分:2)
将路径附加到路径变量
import sys
sys.path.append("<path>")
但是你确定你的pip install --user
实际安装了python3.4软件包,通常一个不需要为pip安装软件包的路径添加任何路径吗?
pip --version
答案 1 :(得分:1)
正如this tutorial中所述,基本上有两种选择:使用PYTHONPATH
或sys.append
。
PYTHONPATH
是一个环境变量,用于扩展目录是python搜索模块。它可以在运行python之前在命令行中设置:
$ export PYTHONPATH=$PYTONPATH:<Path to Module>
$ python
或在bash配置文件中添加行export PYTHONPATH=$PYTONPATH:<Path to Module>
(即.bashrc
)。如果在.bashrc
中设置,那么计算机中执行的所有python脚本都将在那里搜索模块。
sys.append
。它可以添加到调用模块的文件的开头,或者使用以下行调用python解释器:
import sys
sys.path.append('<Path to Module>')
答案 2 :(得分:0)
假设我有一个脚本属于$HOME/repo/code/sample.py
,我想将其导入$HOME/repo2/code/sample.py
的一种方法是:
import os
import sys
env=os.path.expanduser(os.path.expandvars($HOME/repo) # "source" directory with python script
sys.path.insert(0, env)
import code.sample
这将删除对export PYTHONPATH
的依赖性,使您可以像在其他模块一样轻松地在文件/文件夹之间导入。