(我不确定我的问题到底属于哪个 SE 站点,我在 stackoverflow、serverfault 和超级用户之间犹豫不决。请随时在评论中提出有关此问题的建议。)
这是我的问题:
我的 Linux 计算机上有两个用户,bli
并且pquarato
.bli
本地安装了python3.6(从源代码编译./configure --prefix=${HOME}
)。二进制文件安装在 中/home/bli/bin
,pip3.6 安装在 中/home/bli/.local/lib/python3.6/site-packages
。例如,numpy 安装在那里:
(bli) $ pip3.6 install numpy
Requirement already satisfied: numpy in /home/bli/.local/lib/python3.6/site-packages
我希望pquarato
能够使用 的bli
python 安装。bli
做chmod -R a+rx
了/home/bli/bin
和/home/bli/.local
。
pquarato
可以使用bli
python3.6 二进制文件,但无法导入用 pip3.6 安装的模块:
(pquarato) $ /home/bli/bin/python3.6 -c 'import numpy'
Traceback (most recent call last):
File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'numpy'
上面的代码对于bli
.
我还应该做什么?
注意:实际上,我在尝试pquarato
使用 ipython3 等程序时第一次遇到了问题:
(pquarato) $ /home/bli/.local/bin/ipython3
Traceback (most recent call last):
File "/home/bli/.local/bin/ipython3", line 6, in <module>
from pkg_resources import load_entry_point
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3017, in <module>
@_call_aside
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3003, in _call_aside
f(*args, **kwargs)
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 3030, in _initialize_master_working_set
working_set = WorkingSet._build_master()
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 659, in _build_master
ws.require(__requires__)
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 967, in require
needed = self.resolve(parse_requirements(requirements))
File "/home/bli/lib/python3.6/site-packages/pkg_resources/__init__.py", line 853, in resolve
raise DistributionNotFound(req, requirers)
pkg_resources.DistributionNotFound: The 'ipython==6.2.1' distribution was not found and is required by the application
我希望同样的解决方案能够解决ModuleNotFoundError
上述DistributionNotFound
问题。
答案1
我添加了以下内容/home/pquarato/.bashrc
:
export PYTHONPATH="/home/bli/.local/lib/python3.6/site-packages"
这似乎解决了两个问题(ModuleNotFoundError
和DistributionNotFound
)。
.bashrc
在此生效之前,需要获取该文件。
这可能需要根据用户使用的 shell 进行调整。
编辑
设置PYTHONPATH
似乎不适用于*.egg-link
使用pip3.6 install -e
.在这种情况下,仍然存在ModuleNotFoundError
.