python - 当 pip install -e 成功时,为什么从 github 安装 pip 失败?
问题描述
在https://github.com/Ivancic91/LammpsIO有一个 git repo ,我可以通过克隆和运行以“可编辑”模式安装它pip install -e /path/to/LammpsIO
。当我这样做时,我能够import LammpsIO
在 python 中成功运行。
但是,当我直接从 github 安装 pip 时pip install git+https://github.com/Ivancic91/LammpsIO.git
遇到了问题。实际的pip install
命令看起来很成功,并带有通常的成功消息:
Successfully built LammpsIO
Installing collected packages: LammpsIO
Successfully installed LammpsIO-0.0.1
但是当我尝试导入 LamppsIO 时,我得到了ModuleNotFoundError: No module named 'LammpsIO'
.
我认为这可能是某种路径错误,但which pip
两者which python
都指向同一个 conda 环境文件夹。
如果有人需要,这里还有几个输出。
之后pip install git+...
:
conda list
返回:
krb5 1.16.3 h24a3359_1000 conda-
forge lammpsio 0.0.1 pypi_0 pypi
libcurl 7.64.0 h76de61e_0 conda-forge
pip list
返回:
kiwisolver 1.0.1
LammpsIO 0.0.1
MarkupSafe 1.1.0
之后pip install -e ...
:
conda list
返回:
krb5 1.16.3 h24a3359_1000 conda-
forge lammpsio 0.0.1 dev_0 libcurl 7.64.0 h76de61e_0 conda-forge
pip list
返回:
kiwisolver 1.0.1
LammpsIO 0.0.1 /path/to/LammpsIO/src
MarkupSafe 1.1.0
我猜这与LammpsIO的非正统结构有关,其setup.py
文件包含:
package_dir = {'': 'src'},
packages = find_packages(where='src'),
但令我惊讶的是,从 github 安装的 pip 安装失败了pip install -e /path
。
解决方案
你的推理在这里似乎是合理的。我认为您尝试做的事情会奏效。我创建了一个新的 virtualenv 并自己尝试了 github 安装。然后我查看了站点包。我看到的很奇怪。有一个包含基本元数据的“LammpsIO-0.0.1.dist-info”目录,但没有 Lammps 包本身。我做了 find 'find . -iname "*mmps*"' 在站点包中,并且只得到那个信息目录。所以看起来这个包实际上并没有安装。- 当我执行“pip list”时,LammpsIO 确实出现了。
如果您通过下载 zip 并执行“pip install [zip]”来“安装”软件包,您会从 pip 获得相同的输出并最终遇到相同的问题。所以它与直接从github安装无关。它与实际安装软件包而不是将其源链接到您的环境有关。
我的猜测是,Lammps 安装程序刚刚坏了——因为“-e”没有安装任何东西,只是创建了一个链接,这可以解释为什么它可以工作,但常规安装却没有。
推荐阅读
- html - 解析 HTML 并将 PDF 写入磁盘(python)
- powershell - 无法从阈值列表中获取任何工作流
- javascript - 如何使用 Jasmine 在任何 Angular 应用程序中测试 RXJS 实用程序,如管道、跳过、点击、重试等
- python - 在 DialogFlow 中,是否可以从本地文件而不是 URL 输出图像?
- mongodb - 连接数字海洋上的mongodb服务器
- javascript - 带有数字填充的 CSS 计数器
- javascript - 异步每个系列都没有显示正确的结果,显示数组的一个元素而不是所有元素
- python - 无法从使用 Django-Allauth 创建的管理面板中删除用户
- tomcat - 负载测试期间内存不断上升
- reactjs - 当我使用反应钩子单击按钮时如何更改背景颜色