使用 pip to source 安装 Python 包不会创建符号链接

问题描述 投票:0回答:2

所以我是 pip 和 virtualenv 的皈依者。我发现的一件事是,当我使用具有如下内容的requirements.txt时,后续的

pip -E -r requirements.txt
会按预期工作..

PIL==1.1.7
chardet==1.0.1
distribute==0.6.14
django-extensions==0.6
django-profiles==0.2

但是当您开始通过拉取源树来了解您的requirements.txt 时,会看到以下行为。 1)它将源代码拉入“源”树。 (这很好)2)它无法在站点包树中创建指向此的符号链接,而是创建 *.link (.ie django-debug-toolbar.egg-link )

-e git+https://github.com/django-debug-toolbar/django-debug-toolbar.git@9067568b0bbf0c39322f5b761b05463685355b4f#egg=django_
debug_toolbar-dev
-e hg+https://bitbucket.org/ubernostrum/django-registration@fad7080fe76955e7d0d3c97bc468ea8360260a6b#egg=django_registration
-dev
-e git://github.com/yourcelf/django-registration-defaults.git@df80e13fd5f4ee3c96d4508fa12278c47c660c37#egg=django_registrati
on_defaults-dev

问题是现在我必须从站点包树创建到源树的符号链接。 为了解决这个问题,我切换到站点包树并开始创建返回源树的符号链接。

我确信有更好的方法来做到这一点 - 有人可以启发我吗?

virtualenv pip
2个回答
3
投票

您根本不必创建符号链接,virtualenv 的 site-packages 目录中所谓的

*.egg-link
文件将充当 Python(实际上是 setuptools)级别的符号链接。

编辑:我在这里添加了一些背景信息:http://github.com/pypa/pip/issues/435


0
投票

TLDR:如果问题是您的编辑器/LSP 服务器找不到安装为可编辑的软件包,请尝试:

SETUPTOOLS_ENABLE_FEATURES=legacy-editable pip install -e .

问题是现在我必须创建到源的符号链接 站点包树中的树。

-- 铑

您根本不必创建符号链接,即所谓的 *.egg-link virtualenv 的 site-packages 目录中的文件将充当 Python(实际上是 setuptools)级别的符号链接。

--杰兹德斯

从原始帖子中并不清楚 rh0dium 遇到了什么问题。

jezdez 是正确的,Python 的导入系统不需要您创建符号链接。

那么,谁在乎你是否没有符号链接?

好吧,我在尝试解决为什么我的 LSP 服务器找不到软件包(如果我使用

pip install -e .
安装它)时发现了此消息。

我发现只有少数 GitHub 问题和 StackOverflow 帖子提到了这个问题,在这些帖子中我偶尔会看到运行

SETUPTOOLS_ENABLE_FEATURES=legacy-editable pip install -e .
的建议。这解决了我的问题。我的 IDE 现在报告它可以找到依赖项,而之前却找不到。
site-packages
中仍然没有符号链接。但是
.dist-info
文件夹变成了
.egg-link
文件。

我不明白幕后发生了什么才能使这项工作成功。如果有人这样做,请发表评论。

© www.soinside.com 2019 - 2024. All rights reserved.