我没有python打包的经验。我试图用python3 -m build命令打包我的项目。在安装文件中,我需要打开一些文件,其中包括VERSION文件,但我得到错误,他们找不到。
这是我在setup.py文件中打开它的方式
here = os.path.abspath(os.path.dirname(__file__))
about = {}
with io.open(os.path.join(here, 'my-project', 'VERSION')) as f:
_version = f.read().strip()
about["__version__"] = _version
字符串
我得到的错误是:
/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-via-sdist-trdyv1sv/my-project-0.0.1
Traceback (most recent call last):
File "/usr/local/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 280, in <module>
main()
File "/usr/local/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 263, in main
json_out['return_val'] = hook(**hook_input['kwargs'])
File "/usr/local/lib/python3.9/site-packages/pep517/in_process/_in_process.py", line 114, in get_requires_for_build_wheel
return hook(config_settings)
File "/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-env 5euz44zr/lib/python3.9/site-packages/setuptools/build_meta.py", line 154, in get_requires_for_build_wheel
return self._get_build_requires(
File "/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-env 5euz44zr/lib/python3.9/site-packages/setuptools/build_meta.py", line 135, in _get_build_requires
self.run_setup()
File "/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-env 5euz44zr/lib/python3.9/site-packages/setuptools/build_meta.py", line 150, in run_setup
exec(compile(code, __file__, 'exec'), locals())
File "setup.py", line 49, in <module>
with io.open(os.path.join(here, 'my-project', 'VERSION' )) as f:
FileNotFoundError: [Errno 2] No such file or directory: '/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-via-sdist-trdyv1sv/my-project-0.0.1/my-project/VERSION'
型
又何为道
/private/var/folders/pk/r6xddw312z9d5_rfggl0d5pw0000gn/T/build-via-sdist-trdyv1sv/
型
在哪里找不到文件?
我的最终结果是,构建文件夹和.egg-info文件被正确创建,其中打包了tar.gz文件,但没有打包wheel文件。
2条答案
按热度按时间hk8txs481#
我不认为你需要在这一行额外的
my-project
引用。字符串
这给了你什么给予:
型
你也可以尝试在主文件夹中创建一个名为
_version.py
的文件(在setup.py旁边)。然后简单地在文件的顶部添加__version__ = '1.107.7'
。现在你可以将其导入setup.py中,如下所示:型
xmjla07d2#
python3 -m build
可能不包括非.py文件在您的tar文件,这就是为什么你得到一个“文件找不到错误”当运行它.请注意,当
build
尝试安装您的软件包作为验证步骤时,会发生错误。您可以通过将
MANIFEST.in
文件添加到包根目录来解决此问题。此文件的内容只是您希望添加到.tar文件的非.py文件的列表。例如字符串
另外,在
setup.py
中设置include_package_data=True
。您可以阅读更多关于here的信息。