我创建了一个Python包,其中有:
setup.py的内容:
setup(name="testxyz",version="0.2",description="test",long_description="test",author="test",Packages=['testxyz'],install_requires=[])
现在我跑步
python setup.py sdist bdist_wheel
这将创建轮子文件。我可以使用 pip install 安装wheel 文件。我还可以在 pip list 输出中看到它。之后,当我运行时: 导入 testxyz,我收到以下错误:
ModuleNotFoundError: No module named 'testxyz'
这里可能存在一些问题,但是根据迄今为止的信息:
__init.py
但它应该是 __init__.py
testxyz
需要是一个包含 __init__.py
的目录。您的
setup.py
还可能存在其他问题。
看起来您刚刚开始一个项目。在这种情况下,我建议切换到
pyproject.toml
而不是 setuptools
旧版 setup.py
。这是配置 python 项目的新标准方法。
其次,而不是尝试手工制作初始项目结构。您可以使用 pdm 或
poetry
之类的工具,很多工作都会为您完成。
pip install pdm
pdm init
然后,您将获得自动生成的文件夹结构,以及开箱即用的依赖项管理。
pdm add numpy
使用您想要的依赖项更新
pyproject.toml
。
pdm install
这将为您创建一个虚拟环境(每个项目的沙盒 Python 环境)。如果您从事多个项目,那么值得为每个项目使用 venv,而不是尝试管理系统 python 安装的依赖关系。
要激活 venv,您只需“source”即可,而不是执行
activate
脚本。
source ./.venv/bin/activate
您似乎正在尝试构建一个轮子,然后在开发过程中将其安装到往返。你很快就会厌倦这个。当您构建并安装 Wheel 软件包时,它将源目录的内容复制到“site-packages”目录。因此,如果您的代码没有达到您的预期,是因为它不起作用...还是因为您忘记重新安装而运行旧版本的代码。
您可以为此使用开发模式。可以使用
pdm install
开箱即用,但您也可以使用以下命令手动执行此操作:
pip install -d .
其中
.
是包含 setup.py
或 pyproject.toml
的目录的路径。注意:如果使用 pyproject.toml
,则这只适用于某些“后端”。不确定当前状态,但我认为 pdm
有效,poetry
无效,但提供了等效的功能。
无论如何,希望这能帮助你前进。