python-3.x - python install wheel 导致导入错误
问题描述
我想制作一个轮子二进制发行版,安装它,然后在 python 中导入它。我的步骤是
- 我首先创建了轮子:
python ./my_package/setup.py bdist_wheel
- 我安装轮子:
pip install ./dist/*.whl
- 我尝试导入包:
python -c"import my_package"
这会导致错误:
ImportError: No module named 'my_package'
另外,当我这样做时pip list
,my_package
会列出。但是,当我运行时which my_packge
,没有显示任何内容。
当我运行时,pip install ./my_package/
一切都按预期工作。
我将如何正确构建和安装轮子?
python 3.5 版 pip 10.1 版 wheel 0.31.1 版
更新:
当我查看 my_package-1.0.0.dist-info 中的文件时,在top_level.txt
. 这是我运行的文件夹的名称
python ./my_package/setup.py bdist_wheel
。我相信我setup.py
的已经坏了。
关于接受答案的更新:
我接受了下面的答案。然而,我认为最好直接cd
进入包目录。如下所示更改到不同的目录会导致使用-d
标志时出现意外行为,即保存轮子的目标目录。这将与 setup.py 文件中指定的目录相关。
解决方案
我遇到了同样的错误,但这是由于我的 setup.py 没有指定条目“packages=setuptools.find_packages()”。没有它,一切都可以很好地构建,但是即使 pip 显示它已安装,您也无法导入任何内容。
推荐阅读
- git - git merge 在这个图中的位置
- linux - crosstool-ng 配置设置
- c - PRINTF 防止进入低功耗模式
- html - 使用html控件-jsp中的listbox标签
- javascript - 用类和循环简化 javascript?
- flutter - Flutter:在 RaisedButton 的 onPressed 事件中使用 Navigator.of(context) 时出现异常
- python - 如何将坐标从 NAD83 转换为 pandas 中的常规 gps 坐标(纬度/经度)?
- python - 如何在 sagemaker 自定义部署端点脚本中加载文件
- linker - 如果依赖项有另一个需要与静态库链接的依赖项,则链接失败
- pipenv - 使用 pipenv 安装 ta-lib 返回错误