我无法将自己现有的软件包安装到新的 Windows 笔记本电脑上全新安装的 Python 3.11。我在 2019 年使用
setup.py
成功地将几个软件包转移到新 PC 上,我认为它已被弃用,所以我已经尝试了几天来使用 setup.cfg
/pyproject.toml
,但没有成功。
自 2016 年以来,测试模块crhGV.py
已在多台 PC 上正常运行。它可以从命令行运行而不会出错。
pip 提示安装成功:
D:\dataNikau\progLan\python3\crhLib\gv>python -m pip list
Package Version
--------------- -------
build 0.10.0
colorama 0.4.6
**crhGV 2.0**
packaging 23.1
pip 23.0.1
pyproject_hooks 1.0.0
setuptools 65.5.0
我正在使用管理员用户来完成所有这些工作。
python -m build
python -m pip install .\dist\crhGV-2.0.tar.gz
这会导致创建
C:\Program Files\Python311\Lib\site-packages\crhGV-2.0.dist-info
文件夹,但我认为还应该有一个包含 crhGV
脚本的 crhGV.py
文件夹。
我没有收到任何错误消息,并且 Windows 搜索命令没有在 crhGV.py
驱动器上找到任何 C:
文件的副本。
尝试在测试 Python 脚本中导入 crhGV
失败 (ModuleNotFoundError: No module named 'crhGV'
)。
我尝试将所需的crhGV
文件夹手动添加到站点包。这允许 Python 导入命令无错误地完成,但模块仍然不可用。
在故障排除期间,我干净利落地安装了 Python 3.11.2 两次和 Python 3.11.3 一次,并多次尝试安装该模块。第一次尝试时,我安装了多个模块和包,但在后续尝试中将安装过程限制为一个模块。
我不知道为什么安装失败,我已经用完了故障排除的想法。任何关于如何进行的建议将不胜感激。
setup.cfg
和pyproject.toml
文件...
#! python3
# crhGV setup.cfg
# v1.0.2 crh 09-apr-23 -- replaces setup.py
[metadata]
name = crhGV
version = 2.0
description = crh tier 1 module: shared global variables
keywords = tier1
author = **
author_email = **
url = ciscrh/python3/crhLib/gv
[options]
package_dir=
=src
packages = find:
python_requires = >=3.11
[options.packages.find]
where=src
#! python3
# pyproject.toml
# v1.00 crh 09-apr-23 -- minimal pyproject.toml configuration
[build-system]
requires = ["setuptools"]
build-backend = "setuptools.build_meta"
-------- 几天后...
我使用 pyproject.toml 和 setup.cfg 文件的方法不起作用,也没有产生错误,因此很难进行故障排除。我最终改为只使用 pyproject.toml 文件。我发现获得正确的格式非常具有挑战性,因为有很多可用的示例对我不起作用。我认为 pyproject.toml 方法仍在不断发展,所以我尝试的大部分内容都是基于现在无法使用的语法示例。最终我得到了一个用于单个源模块的工作配置文件,并且通过更多的实验,我设法让我的包含多个模块的包也能正常工作。所以现在我放弃了 setup.py 和 setup.cfg,转而使用一个 pyproject.toml 文件,该文件的行数可能比必要的多。 在突破之前,我已经将 pip 实用程序更新到 23.1 版,几天前才发布。我没有理由相信 pip 的这一点更新对解决方案有任何影响。
#! python3
# pyproject.toml for crhDateUtil
# v1.00 crh 20-apr-23 -- pyproject.toml configuration
[build-system]
requires = ["setuptools>=65"]
build-backend = "setuptools.build_meta"
[project]
name = "crhDateUtil"
version = "2.0"
description = "crh tier 2 module: date utilities"
authors = [{name = "CRH", email = "***"}]
readme = {file = "README.txt", content-type = "text/markdown"}
requires-python = ">=3.11"
keywords = ["tier 2", "date utilities", "crhDate", "crhParseDate"]
[options]
package_dir = "src"
[options.packages.find]
where = "src"