gpt4 book ai didi

python - setup.py 没有安装我的 package_data

转载 作者:行者123 更新时间:2023-12-01 08:30:27 27 4
gpt4 key购买 nike

在 Ubuntu 16.04 和 Windows 7(pip 18.1、python 2.7.15)上,我遇到了一个问题,我的包数据进入了 tar.gz 文件,但它们当我使用 pip 安装时,不会安装到我的脚本目录中。我在 Windows 上的脚本目录是 \Python27\Scripts。我还检查了 site-packages 并且该文件没有显示在那里。我希望在通过 pip 安装时有一个文本文件与 python 脚本一起出现,并且我认为使用 data_files 无法实现此目的(根据 setup.py not installing data files

我的包结构在名为 fakeapp 的根文件夹中包含所有文件(hello.py、MANIFEST.IN、setup.py)。我想保留这个结构,因为我实际尝试修复的项目具有这个结构。

我查找了很多答案并尝试过:

  • 将空的 __init__.py 添加到存储库的根目录,但这并没有解决问题。
  • 我尝试添加和删除 include_package_files=True 但无济于事
  • 我尝试指定 package_data={'':['texto.txt']} 以及
    include texto.txt 添加到 MANIFEST.in 无济于事。
  • This answer : 建议使用 bdist,但这也不起作用。

我确信这是一个重复的问题,但我无法找到任何可行的解决方案。

这是我的测试用例:设置.py

from setuptools import setup
setup(
author='hi',
author_email='hi@hi.com',
description="test",
scripts=['hello.py',],
license='MIT',
name='hi',
version='v2018.12.02',
include_package_data=True
)

你好.py:

#!/usr/bin/env python

def main():
print('hello world!')

if __name__ == '__main__':
main()

MANIFEST.in:

include texto.txt

我在 dist/中创建了一个 tar.gz

python setup.py sdist

我的 texto.txt 就在那个 tarball 中。

然后我安装了

pip install dist\hi-2018.12.2.tar.gz

并且只有 hello.py 进入 C:\Python2.7\Scripts

我做错了什么?

目录树:

│   hello.py
│ MANIFEST.in
│ setup.py
│ texto.txt

├───dist
│ hi-2018.12.2.tar.gz

└───hi.egg-info
dependency_links.txt
PKG-INFO
SOURCES.txt
top_level.txt

最佳答案

texto.txt 实际上不是包数据,因为它不在包内(带有 __init__.py 的目录),因此不会安装。获得所需内容的最简单方法是重构代码,以便安装包 hello 而不是平面模块 hello.py,其中使用 hello.py 被移动到 hello/__init__.pytexto.txt 被移动到 hello/texto.txt

关于python - setup.py 没有安装我的 package_data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53925027/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com