向另一个 Linux 用户授予对用户安装的 python 发行版的访问权限

向另一个 Linux 用户授予对用户安装的 python 发行版的访问权限

(我不确定我的问题到底属于哪个 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能够使用 的blipython 安装。blichmod -R a+rx/home/bli/bin/home/bli/.local

pquarato可以使用blipython3.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"

这似乎解决了两个问题(ModuleNotFoundErrorDistributionNotFound)。

.bashrc在此生效之前,需要获取该文件。

这可能需要根据用户使用的 shell 进行调整。


编辑

设置PYTHONPATH似乎不适用于*.egg-link使用pip3.6 install -e.在这种情况下,仍然存在ModuleNotFoundError.

相关内容