首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

python setup.py sdist bdist_wheel引发` `TypeError:预期字符串或类似字节的对象`

python setup.py sdist bdist_wheel 是一个用于打包 Python 项目的命令。它会根据项目中的 setup.py 文件来生成一个源代码分发包(sdist)和一个二进制 wheel 包(bdist_wheel)。

然而,当执行该命令时,有时会出现 TypeError: expected string or bytes-like object 的错误。这个错误通常是由于 setup.py 文件中的某些参数或值的类型不正确导致的。

要解决这个问题,可以按照以下步骤进行排查和修复:

  1. 检查 setup.py 文件:确保 setup.py 文件中的参数和值都是正确的类型。特别注意检查字符串和字节对象的使用,确保没有传递错误的类型给相关的函数或方法。
  2. 检查 Python 版本:确保你正在使用的 Python 版本与项目的要求相匹配。有时,某些参数或值在不同的 Python 版本中可能有所不同,导致类型错误。
  3. 更新依赖库:确保你使用的所有依赖库都是最新版本。有时,旧版本的依赖库可能存在类型相关的 bug,更新到最新版本可能会修复这些问题。
  4. 检查环境配置:确保你的开发环境正确配置,并且没有与 Python 安装或环境变量相关的问题。有时,环境配置不正确可能导致类型错误。

如果以上步骤都没有解决问题,可以尝试以下方法:

  • 搜索错误信息:将错误信息 TypeError: expected string or bytes-like object 复制到搜索引擎中,查找是否有其他开发者遇到类似的问题,并找到解决方案。
  • 提问社区:将你遇到的问题描述清楚,包括你的操作系统、Python 版本、相关依赖库等信息,然后在相关的开发者社区或论坛上提问。其他开发者可能会提供帮助和解决方案。

希望以上信息能帮助你解决问题。如果你需要更多关于云计算、IT互联网领域的知识或其他问题,请随时提问。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 setup.pyPython 库打包分发到 PyPI 踩坑指南

如果仅仅执行 python setup.py sdist 命令,那么你打出来是一个 xxx.tar.gz 包,可以理解为源文件包,当你把这个包上传到 PyPI 之后,使用 pip install 进行安装时候会另外执行一次...也就是说,如果你在上传到 PyPI 之前就执行 python setup.py sdist bdist_wheel 打包,那么会同时得到一个 tar.gz 和一个 whl 包,这个时候使用 pip install...我疑问和解答 我带着几个疑问,查看了很多资料,然后结合自己验证,总算是解决了一些问题,现在就分享一下。 1、打包应该用 sdist 还是 bdist_wheel ?...它作用是对 bdist_wheel 打包命令生效,前面说到了 MANIFEST.in 文件可以来定义一些非 Python文件被打包,但是定义只有 sdist 打出来源文件包才有效,这个时候其实对...所以当你想让 sdistbdist_wheel 打出来包有差异时候,可以通过这个参数来单独定义 bdist_wheel 打出来内容。

1.5K20

2021年,你应该知道Python打包指南

setup.py 真难写 似乎从有 Python 打包以来就有了setuptools这个库,你能搜到教程,涉及打包发布,都会让你编写那个可怕setup.py。...第一步,打包成可分发文件: $ python setup.py sdist bdist_wheel --universal 这条命令会同时生成源代码包(Source Distribution),和二进制包...其中bdist_wheel生成二进制包是 wheel 格式(需要安装wheel才能打包),--universal意思是这个二进制包对所有 支持 Python 版本和 ABI 都适用,「 一处打包,...到处使用」,生成文件名类似:my_package-0.1.0-py3-none-any.whl。...上传 可能有老教程,让你直接用python setup.py sdist bdist_wheel register upload打包上传一步到位,这个方式已经过时了不推荐使用。

1.7K10
  • Python打包指南2021

    setup.py 真难写 似乎从有 Python 打包以来就有了setuptools这个库,你能搜到教程,涉及打包发布,都会让你编写那个可怕setup.py。...第一步,打包成可分发文件: $ python setup.py sdist bdist_wheel --universal 这条命令会同时生成源代码包(Source Distribution),和二进制包...其中bdist_wheel生成二进制包是 wheel 格式(需要安装wheel才能打包),--universal意思是这个二进制包对所有 支持 Python 版本和 ABI 都适用,「 一处打包,...这个文件名不是乱来,是要遵循一定规则,下载器能直接从这个文件名获得这个包基本信息: 上传 可能有老教程,让你直接用python setup.py sdist bdist_wheel register...注意,在 PEP 517 提案之后今天,永远不要再用python setup.py install,python setup.py build这两种方式安装和构建包了,所有的 PyPI 上包,都必须通过

    36230

    pythonb包cutImages生成方法,可以把自己代码包发布到网上

    如何分享自己python代码到pypi,方便其他同学使用?...相信不少写python同学都用过第三方提供库,使用这些库减少了我们一些工作量,那么,你是否考虑过,也分享一下自己代码给其他同学使用呢?...下面是我之前写一个库,已经发布到pypi上,简单说一下这个功能及制作过程~ 基本信息: 包名: cutImages 描述: python实现自动批量切图 作者: lshxiao 下载地址:https...\Cache python包生成过程: 1、新建目录,并在目录下创建setup.py文件 2、然后创建功能模块,本项目是cutImages包 3、打包 python setup.py sdist bdist_wheel...bdist_egg # sdist: 生成类似 *.tar.gz,支持 pip # bdist_egg: 生成类似 *.egg,支持 easy_install 4、注册(如果没有pypi账号,请自己先注册一个

    841110

    Python第九周 学习笔记(1)

    此错误不可捕获 ArithmeticError 算术计算错误,子类有除零异常等 LookupError 使用映射序列索引无效时引发异常基类:IndexError,KeyError 模块化...找到制定模块,加载和初始化它,生成模块对象 在import所在作用域局部命名空间中,增加名称和上一步创建对象关联 导入顶级模块,其名称会加入到本地名词空间中(dir()),并绑定到其模块对象...模块属性 file 源文件路径 cached 编译后字节码文件路径 spec 显示模块规范 name 模块名 package 当模块是包,同name,否则可以设置为顶级模块字符串 包 Package...-help build 创建一个build目录 python setup.py build build得到文件,直接拷贝到其他项目就可以用 install python setup.py install...如果没有build,会先build编译,然后安装 sdist python setup.py sdist 创建源代码分发包 在其他地方解压缩这个文件,里面有setup.py,就可以使用python

    48610

    什么是Python Wheels?为什么要关心它?

    前言 Python .whl文件(wheels)是Python中很少讨论一部分,但是它们对Python安装过程非常重要。...在第10行,它在构建了轮子之后安装实际包。 pip检索tar.gz tarball是一个源分发包,sdist,而不是一个轮子。在某些方面,sdist是轮子反义词。 源代码发行版包含源代码。...这不仅包括Python代码,还包括与包绑定任何扩展模块源代码(通常用Cc++编写)。对于源发行版,扩展模块是在用户端而不是开发人员端编译。...从开发人员角度来看,当您运行以下命令时,会创建一个源分发包: $ python setup.py sdist 现在尝试安装一个不同包:chardet: $ python -m pip install...从开发人员角度来看,轮子是运行以下命令结果: $ python setup.py bdist_wheel 为什么uWSGI给你一个源分布,而chardet提供一个轮子?

    7.9K30

    构建自己Python包到Pypi

    构建自己Python包到Pypi 作者:matrix 被围观: 5 次 发布时间:2023-04-28 分类:Python | 无评论 » 安装构建工具 首先确保安装了setuptools...wrapper.py:自己定义文件,包含功能代码 __init__.py 包定义,以及可引入方法 配置setup.py setup.py可配置作者、readme、仓库等信息 import os from...", "Programming Language :: Python :: 3.8", "Programming Language :: Python :: 3.9",...setup.py sdist bdist_wheel 说明: 将在dist新文件夹中生成源代码和二进制分发文件 上传到Pypi 确保已经注册了PyPI账户 $ twine upload dist/...= __token__ password = pypi-A1************bQ 执行推送后类似下面内容,就是完成了 $ twine upload dist/* Uploading distributions

    54920

    统计学习方法 Python

    └── __init__.py 编辑 slm/__init__.py name = "slm" 创建 setup.py setup.py 是 setuptools 构建脚本。...对于许多项目,这只是一个指向 GitHub,GitLab,Bitbucket 类似代码托管服务链接。 packages 是应包含在 分发包 中所有 Python 导入包 列表。...现在从 setup.py 位于同一目录运行此命令: python3 setup.py sdist bdist_wheel 此命令应输出大量文本,一旦完成,应在 dist 目录中生成两个文件: dist...python3 setup.py sdist bdist_wheel twine upload dist/* 命令完成后,您应该看到与此类似的输出: Uploading distributions to...由于 TestPyPI 与实时 PyPI 没有相同包,因此尝试安装依赖项可能会失败安装意外事情。虽然我们示例包没有任何依赖关系,但在使用 TestPyPI 时避免安装依赖项是一种很好做法。

    1K30

    实战教程:如何将自己Python包发布到PyPI上

    3、setup.py文件 setup.py是setuptools构建脚本,用来描述项目,打包时候会用到这个文件。...1、准备好上面的步骤, 一个包就基本完整了, 剩下就是打包了,可以使用下面命令打包一个源代码包: python setup.py sdist build 这样在当前目录dist文件夹下, 就会多出一个...tar.gz结尾包了: 2、也可以打包一个wheels格式包, 使用下面的命令就可以了: python setup.py bdist_wheel --universal 这样会在dist文件夹下面生成一个...whl文件. 3、或者从setup.py位于同一目录运行此命令: python3 setup.py sdist bdist_wheel 上面的命令会在dist目录下生成一个tar.gz源码包和一个...命令完成后,您应该看到与此类似的输出: ➜ twine upload dist/* Uploading distributions to https://upload.pypi.org/legacy/

    2.7K30

    使用sonatypenexus构建企业级内部pypi仓库之demo演示

    setup.py 这里只是为了演示,使用来最精简模式,其实可以定义很多很多自定义信息,比如文档描述,比如版本等等信息 ?...环境和依赖 •pyenv•python3•setuptools•wheel•twine 需要操作 pyenv install 3.7.2 cd demohello pyenv shell 3.7.2...python -m pip install setuptools wheel twine 上传实践 这一步你也可以借助~/.pypirc搭配twine实现更精简方式操作,具体看你个人喜好而定。...# 打包 python setup.py sdist bdist_wheel # 上传 python -m twine upload --repository-url http://127.0.0.1...总结 其实这个内部推广成本不大,但是大家都能用起来情况下,所带来收益远不止这些,文档中并未一步一步操作,有些内容可以自行谷歌探索,另外需要提到一点是,同理,其他语言使用也是类似场景,尤其是composer

    86261

    Python基础】08、Python

    from将一个多个变量名赋值给导入此模块模块中同名对象 模块就是名称空间        模块名称空间可以通过属性__dict__dir(M)来获取               模块属性可通过点号...在指定路径下搜索模块文件 编译成字节码 文件导入时就会编译,因此,顶层文件.pyc字节码文件在内部使用后会被丢弃,只有被导入文件才会留下.pyc文件 执行模块代码来创建其所定义对象        ...python setup.py --help-commands    所有可以使用命令,如build,install,sdist,bdist python setup.py COMMAND --help...  yanmod.py  yanmod.pyc [root@Node3 pkg1]# /usr/local/bin/python2.7 setup.py sdist running sdist running...,并能进行安装 打包:python setup.py sdist 安装:python setup.py install        install之前会自动先进行build,默认会在当前工作目录下生成

    1.8K10

    将自己 python 包添加到 pip 源 Pypi

    pypi 包中打包非 py 文件,需要在 setup.py 文件中额外指定 建立 config 对象,使用 add_data_files 函数添加文件路径 示例 setup.sh import sys...发布 python 包 在命令行中切换到当前目录,输入: python setup.py sdist 会在当前目录生成 dist 文件夹 你可以任选以下两种方式之一发布你轮子。...使用命令:python setup.py sdist upload,还是和上面一样,简单但有安全隐患,目前已淘汰。...setup.py bdist_wheel 在 dist 文件夹中会生成 whl 包 可以 pip install xxx.whl 直接安装 管理你包 如果你包已经上传成功,那么当你登录PyPI网站后应该能在右侧导航栏看到管理入口...error: No dist file created in earlier command 你还没打包就开始了上传命令,建议打包和上传操作放在一起做,比如: python setup sdist

    98130
    领券