如何导入安装在主目录中的模块?
How to import module installed in home directory?
我在我的主目录中安装了 Python3.4.3,所以它在 /home/jdoe/.local/bin/python3
下,我通过执行 pip install --user package_name
pip 安装了一些外部模块。但是现在在编写我的 python 脚本时找不到 python 寻找的包,因为它正在寻找 usr/lib
但包不在那里。如何导入模块以便 python 查看安装在我的个人主目录中的站点包?
将路径附加到您的路径变量
import sys
sys.path.append("<path>")
但是你确定你的pip install --user
实际上安装了一个python3.4包,通常不需要在pip安装包的路径中添加任何路径?
pip --version
的输出是什么
如 this tutorial 中所述,基本上有 2 个选项:使用 PYTHONPATH
或 sys.append
。
PYTHONPATH
是一个环境变量,用于扩展 Python 搜索模块的目录。可以在命令行前设置 运行 python:
$ export PYTHONPATH=$PYTHONPATH:<Path to Module>
$ python
或在 bash 配置文件中添加 export PYTHONPATH=$PYTHONPATH:<Path to Module>
行(即 .bashrc
)。如果在 .bashrc
中设置,则计算机中执行的所有 python 脚本都会在那里搜索模块。
sys.append
从 Python 中调用。它可以添加到调用模块的文件的开头,或者使用以下行从 Python 解释器调用:
import sys
sys.path.append('<Path to Module>')
假设我有一个属于 $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
的依赖,并允许您在 files/folders 之间轻松导入,就好像它们是任何其他模块一样。
我在我的主目录中安装了 Python3.4.3,所以它在 /home/jdoe/.local/bin/python3
下,我通过执行 pip install --user package_name
pip 安装了一些外部模块。但是现在在编写我的 python 脚本时找不到 python 寻找的包,因为它正在寻找 usr/lib
但包不在那里。如何导入模块以便 python 查看安装在我的个人主目录中的站点包?
将路径附加到您的路径变量
import sys
sys.path.append("<path>")
但是你确定你的pip install --user
实际上安装了一个python3.4包,通常不需要在pip安装包的路径中添加任何路径?
pip --version
如 this tutorial 中所述,基本上有 2 个选项:使用 PYTHONPATH
或 sys.append
。
PYTHONPATH
是一个环境变量,用于扩展 Python 搜索模块的目录。可以在命令行前设置 运行 python:
$ export PYTHONPATH=$PYTHONPATH:<Path to Module>
$ python
或在 bash 配置文件中添加 export PYTHONPATH=$PYTHONPATH:<Path to Module>
行(即 .bashrc
)。如果在 .bashrc
中设置,则计算机中执行的所有 python 脚本都会在那里搜索模块。
sys.append
从 Python 中调用。它可以添加到调用模块的文件的开头,或者使用以下行从 Python 解释器调用:
import sys
sys.path.append('<Path to Module>')
假设我有一个属于 $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
的依赖,并允许您在 files/folders 之间轻松导入,就好像它们是任何其他模块一样。