gpt4 book ai didi

Pythonpath仍然被忽略,无法使用pip本地安装

转载 作者:行者123 更新时间:2023-12-01 05:57:12 25 4
gpt4 key购买 nike

我发现我的 pythonpath 环境变量被忽略。我在 ubuntu 上使用 python 2.6。我的 .bashrc 中有以下内容:

导出 PTYHONPATH=/my/home/mylibs/lib/python2.6/site-packages/:$PYTHONPATH

然后我使用以下命令安装新版本的 numpy:

python setup.py install --prefix=/my/home/mylibs/

并且它在本地正确安装。但是,当我尝试安装依赖于新版本 numpy 的其他软件包(也使用 setup.py)时,他们找不到它,因为默认情况下加载的 numpy 是 中的那个/usr/llib,而不是我的 PYTHONPATH 中指定的。我的 PYTHONPATH 设置正确,但系统范围的目录仍然否决它。

如何解决这个问题?我只想在 import numpy 时访问我的本地版本的 numpy。我看到其他与 python 2.4 相关的帖子,但据我所知,它从未得到解决。另外,我现在想在不安装 pip 或 virtualenv 的情况下执行此操作。似乎应该可以使用传递给 setup.py--prefix--home 选项,然后更改 PYTHONPATH 但这对我不起作用...系统范围的 lib 目录首先被读取。

编辑:我尝试遵循建议并使用pip。我在系统范围内安装了旧的 pip,它无法识别 --user(版本 0.3)。我尝试使用 pip 本身升级 pip 但当然失败了,因为我无法在本地安装它,所以 pip install pip --upgrade --user 不是一个选项。我下载了新版本的 pip 并在本地安装在我的主目录中,但当我在提示符下输入 pip 时,系统范围内的旧版本仍然使用。我查看了 pip 包并找到了 runner.py 因此我尝试使用它来安装包:

runner.py install --user numpy --upgrade

由于权限被拒绝,仍然失败:

OSError: [Errno 13] Permission denied: '/usr/bin/f2py2.6'

看起来--user已损坏。我也不确定这将如何解决系统范围的 python 使用 /usr/lib 中的系统范围的包的事实...有解决方案吗?现在看来,在 python 中安装本地包几乎是不可能的。

最佳答案

好的,Python 将使用它找到的第一个包。 PYTHONPATH 被附加到 sys.path,位于系统路径之后。所以它通常会先找到系统一。但“官方”每用户包目录似乎放在前面。因此,创建您的个人站 pip 包目录:

mkdir -p $HOME/.local/lib64/python2.7/site-packages
mkdir $HOME/bin

(您可能需要将“lib64”更改为“lib32”或只是“lib”)

在我的系统上,该目录被放置在系统目录之前。但您应该通过打印 sys.path 来验证它。

然后将您的软件包安装到那里。但是,最新 pip 版本中的 --user 选项应该已经将其放置在那里。

作为列表手段,您可以操作sys.path。您可以将目录插入到系统站 pip 包之前的 sys.path 中,然后导入 numpy。

您在尝试将脚本安装到系统位置时遇到权限错误。您可以传递其他选项以在 $HOME/bin 目录中安装脚本。

像这样安装:

pip install --user --install-option="--install-scripts=$HOME/bin"

关于Pythonpath仍然被忽略,无法使用pip本地安装,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11895233/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com