python - 运行 pip install -e 后出现 python ModuleNotFoundError。
问题描述
我正在尝试在系统范围内编译和安装以下 python 包: https ://github.com/mathurinm/BlitzL1/
(请注意,init.py
模块的位于名为python
)
所以我在 repo 的根目录下运行,
pip install -e .
我得到:
zongo@zongo-HP-EliteBook-840-G3:~/workspace/BlitzL1$ pip install -e .
Obtaining file:///home/zongo/workspace/BlitzL1
Installing collected packages: blitzl1
Running setup.py develop for blitzl1
Successfully installed blitzl1
zongo@zongo-HP-EliteBook-840-G3:~/workspace/BlitzL1$ ipython
Python 3.6.6 | packaged by conda-forge | (default, Jul 26 2018, 09:53:17)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.0.1 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import blitzl1
---------------------------------------------------------------------------
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-8bb5a22c28e9> in <module>
----> 1 import blitzl1
ModuleNotFoundError: No module named 'blitzl1'
经过反复试验,我发现将python
文件夹重命名为blitzl1
并替换为setup.py
:
package_dir = {"blitzl1": "python"},
经过
package_dir = {"blitzl1": "blitzl1"},
使导入包成为可能。为什么第一个不起作用?
顺便一提:
zongo@zongo-HP-EliteBook-840-G3:~/workspace/BlitzL1$ which pip
/home/zongo/anaconda3/bin/pip
解决方案
这是由于pip
当包目录与setup.py
. 请参阅此处了解更多信息。
为了更清楚,如果包名是my_package
,源的结构是:
|- setup.py
|- src
|- __init__.py
|- ...
with ,使用或package_dir={'my_package':'src'}
安装软件包将引发 OP 报告的错误。缓解这种情况的一种方法是将回购的结构更改为pip install -e .
python setup.py develop
package_dir={'':'src'}
|- setup.py
|- src
|- mypackage
|- __init__.py
|- ...
推荐阅读
- java - 使用可选参数在 Spring Boot 中删除查询
- c# - 如何使用程序中的值在 c# winform 应用程序中创建 RDLC 报告
- kotlin - 将 Kotlin 数据对象映射到具有枚举属性的数据对象
- google-colaboratory - 在 Google Colab 上部署 AutoML 模型时出现 500 内部错误
- c++ - Clang-Tidy:Operator=() 应该返回 '...&'
- flutter - 如何在 Stack 小部件中添加 PageView 小部件?
- python - “SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 58-60: truncated \uXXXX escape” 解析此字符串时出错
- android - Android 语言环境解析错误地回退而不是使用第二首选语言
- deep-learning - 激光雷达分割是否适用于自动驾驶汽车?
- angular - 将一个数组的值分配给另一个数组的每个值,并在打字稿中以 JSON 格式提交