因为 setup.py 执行打包的时候默认只会打包 Python 包,这是一个什么概念呢,就是只会打包带有 __init__.py 的目录文件,也就是必须是包,于是问题就来了,比如我的项目里面的静态文件目录...打包命令 打包命令其实有两个,一个是 sdist,另一个是 bdist_wheel,后者需要安装 wheel 才能执行不然会报错。...如果仅仅执行 python setup.py sdist 命令,那么你打出来的是一个 xxx.tar.gz 的包,可以理解为源文件包,当你把这个包上传到 PyPI 之后,使用 pip install 进行安装的时候会另外执行一次...也就是说,如果你在上传到 PyPI 之前就执行 python setup.py sdist bdist_wheel 打包,那么会同时得到一个 tar.gz 和一个 whl 的包,这个时候使用 pip install...它的作用是对 bdist_wheel 打包命令生效的,前面说到了 MANIFEST.in 文件可以来定义一些非 Python 包的文件被打包,但是定义的只有 sdist 打出来的源文件包才有效,这个时候其实对
你需要的包(Package)基本上都可以从这里面找到。作为开源软件,你也希望能够贡献你的 Package 到这里供其他用户使用。...你就需要将需要的内容从 PyPi 上下载下来引用即可。...构建一个发布文件,在isOdd文件夹下打开一个终端,执行命令:python3 setup.py sdist $ python3 setup.py sdist running sdist running...利用Python发布工具,你的模块已经转换为一个发布,并且安装到你的Python本地副本上。...setup.py sdist upload 方法2: 使用twine上传你的项目 pip3 install twine python3 setup.py sdist python3 setup.py
大家早上好 今天要为大家带来的是如何通过从PyPI的方式安装任何Python软件包作为Rez软件包 虽然rez官方也提供了工具可以把PyPI上面的python包作为rez包 但是它在把PyPI上面的包转成...rez的软件包的时候是以哈希值命名的 安装pipz 今天我们的分享的工具叫pipz, 作者是mottosso 由于pipz依赖于bleeding-rez 所以我们需要先安装bleeding-rez...rez env pipz python-3 -- install pyyaml rez env pipz python-2 -- install pyyaml 需要注意的是像我这边的rez是通过python...-3安装的 rez env中默认带了python-3的环境所以当我不指定python版本去安装python-2的包的时候会出现类似下面的冲突 我们只需要指定对应的python版本就可以了 默认安装好了的...pip包的路径在你本地用户下的packages文件夹中我们可以在pipz安装的log中看到 通过命令行rez env就能使用我们安装好了pip包了 未来我会教大家如何去配置rez, 通过配置修改这些默认的安装路径的
想当初刚学习Python的时候,就会用书本里面自带的一些package,用sys,os也用得很开心。后来接触到biopython项目,发现原来Python有这么不同功能的包,简直琳琅满目。...不过这也是我痛苦的开始,在服务器上装个包怎么那么费劲呢,缺这少那的。 为了一个包的安装,我得花多少时间啊,还能不能让人好好做科研了。...黑暗时代 最开始的时候是从源码开始安装,一般 python setup.py install就执行安装过程了,不过可怕的这些包之间的依赖关系。而且安装的时候,要选择安装目录。...有了它,现在可以在电脑上安装不同版本的package了。使用方法也很简单,因为 virtualenv也是Python包,可以直接用 pip来进行安装。...现在除了anaconda,还有精简的miniconda和专门为生物信息准备的bioconda,虽然名字不一样,只是默认安装时带的package不一样而已,使用方法没什么区别。
简介 python 包可以使用 pip 工具方便地管理,分享和使用。 使用python包模块有很多好处: 可以使用pip之类的命令来管理和安装python模块,避免手动管理引用文件。...网站上没有使用过,可以访问官网,搜索一下想用的名字有没有被占用。...install_requires 重要:包的相关依赖,在安装该包之前会检查列表中的依赖项并自动安装 python_requires python 版本需求 pypi 打包非 py 文件 可以在...发布 python 包 在命令行中切换到当前目录,输入: python setup.py sdist 会在当前目录生成 dist 文件夹 你可以任选以下两种方式之一发布你的轮子。...分享包 现在链接互联网的人讲道理可以使用如下命令来安装我们的包 pip install utils-vvd 但是会有一些问题,在国内一般都会换成阿里、清华、中科大等pip源,使用这些默认源无法下载到我们的包
这就是使用 Python 解释器,在执行 setup.py 时跟上 build 这个参数产生的结果,build 目录下所有的文件就是我们最终打包的压缩包里面包含的文件。...最后一步就是生成「发布压缩包」: python3 setup.py sdist 同样回车以后会产生一些提示信息: running sdist running check warning: sdist:...02.安装模块压缩包 当其他人拿到我们分享的模块压缩包以后,怎样把我们的模块安装到他自己的开发环境中呢?...有没有很熟悉呢?对啦,这就是我们在文章刚开始时给 setup 函数传递的参数。这个文件的好处是什么呢?就是当其他人拿到我们开发的模块时,能够很清楚的知道模块的开发者是谁,怎么才能联系到开发者。...03.卸载模块 能安装就得能卸载,模块安装成功以后,如果我们不想再用了,怎么把这个模块从我们的系统中删除呢? 很简单,同样只需要两步: 第一步:直接进入到安装目录(也就是系统目录)。
pypiserver 是一个最基本的PyPI服务器实现, 可以用来上传和维护Python包. 本文介绍 pypiserver 在Ubuntu上的基本安装, 配置和使用. 1....基本安装和使用 1.1 安装和启动 pypiserver 可以在Python 2或者Python 3下运行....将分发包上传到 ~/packages 目录下, 接下来就可以访问 pypiserver 上的Python包了. 1.3 安装 pypiserver 上的Python包 在安装和启动 pypiserver...远程上传项目包 如果希望通过python setup.py upload命令将本地项目代码上传到PyPI服务器, 可以通过以下步骤来完成. 2.1 无密码上传项目包 默认情况下, pypiserver...此时, 就可以在Python项目的根目录下, 执行远程安装命令来上传包.
还有很关键的一点是Sphinx有autodoc和automodule的扩展, 可以从代码中提取出文档,与代码直接进行关联。提供一个例子可以方便的在文档和源码中进行跳转。...发布包到PyPI PyPI - the Python Package Index 是Python的包仓库,它允许我们将自己写的包上传上去,这样就可以使用pip和easy_install进行安装了。...打包代码 $ python setup.py sdist # 生成pip支持的安装包 $ python setup.py bdist_wheel # 生成支持easy_install的安装包 发布到PyPI...= your username password = your password 上传package $ python setup.py sdist bdist_wheel upload 在上传完成提示...200响应的时候,你就上传成功了,去PyPI上看看有没有上传成功的包,并且试着用pip进行安装吧!
setup.py 真难写 似乎从有 Python 打包以来就有了setuptools这个库,你能搜到的教程,涉及打包发布的,都会让你编写那个可怕的setup.py。...第一步,打包成可分发的文件: $ python setup.py sdist bdist_wheel --universal 这条命令会同时生成源代码包(Source Distribution),和二进制包...其中bdist_wheel生成的二进制包是 wheel 格式(需要安装wheel才能打包),--universal的意思是这个二进制包对所有 支持的 Python 版本和 ABI 都适用,「 一处打包,...属性,判断是否与当前 Python 版本兼容,加入候选列表 若是源代码包,直接加入候选列表 最终在候选列表中优先选择 whl 文件为待安装的包,将包下载到本地,候选包的选择可以由pip install的...如果待安装的文件是源代码包,那么需要把这个压缩包解压到一个临时目录,根据包指定的方式编译构建,生成 whl 文件,再用 whl 安装同样的方法放到目标目录中。
如果您已经使用pip安装了Python包,那么很有可能是轮子(wheels)使安装速度更快、效率更高了。 轮子是Python生态系统的一个组件,它有助于使包的安装工作正常进行。...轮子简介 在学习如何将项目打包到轮子中之前,从用户的角度了解使用轮子是什么样子是很有帮助的。 可以像往常一样在环境中安装一个Python包来开始这个实验。...在第10行,它在构建了轮子之后安装实际的包。 pip检索的tar.gz tarball是一个源分发包,或sdist,而不是一个轮子。在某些方面,sdist是轮子的反义词。 源代码发行版包含源代码。...从开发人员的角度来看,当您运行以下命令时,会创建一个源分发包: $ python setup.py sdist 现在尝试安装一个不同的包:chardet: $ python -m pip install...直接从wheels安装避免了从源分发版构建包的中间步骤。 几乎可以保证,安装chardet只需uWSGI所需时间的一小部分。然而,这是一种不公平的比较,因为chardet是一个明显更小和更简单的包。
setup.py 真难写 似乎从有 Python 打包以来就有了setuptools这个库,你能搜到的教程,涉及打包发布的,都会让你编写那个可怕的setup.py。...第一步,打包成可分发的文件: $ python setup.py sdist bdist_wheel --universal 这条命令会同时生成源代码包(Source Distribution),和二进制包...这个文件名不是乱来的,是要遵循一定规则,下载器能直接从这个文件名获得这个包的基本信息: 上传 可能有老的教程,让你直接用python setup.py sdist bdist_wheel register...属性,判断是否与当前 Python 版本兼容,加入候选列表 若是源代码包,直接加入候选列表 最终在候选列表中优先选择 whl 文件为待安装的包,将包下载到本地,候选包的选择可以由pip install的...注意,在 PEP 517 提案之后的今天,永远不要再用python setup.py install,python setup.py build这两种方式安装和构建包了,所有的 PyPI 上的包,都必须通过
pypiserver 是一个最基本的PyPI服务器实现, 可以用来上传和维护python包. 本文介绍 pypiserver 在ubuntu上的基本安装, 配置和使用. 1....基本安装和使用 1.1 安装和启动 pypiserver 可以在Python 2或者Python 3下运行....将分发包上传到 ~/packages 目录下, 接下来就可以访问 pypiserver 上的Python包了. 1.3 安装 pypiserver 上的Python包 在安装和启动 pypiserver...远程上传项目包 如果希望通过python setup.py upload命令将本地项目代码上传到PyPI服务器, 可以通过以下步骤来完成. 2.1 无密码上传项目包 默认情况下, pypiserver...此时, 就可以在Python项目的根目录下, 执行远程安装命令来上传包.
运行如下命令: >>python setup.py sdist #打包后的格式为tar.gz/zip 当前目录下新增一个dist目录,里面会有一个同name值相同的文件包。...setup.py install #安装到python安装目录的lib下 --python setup.py sdist #生成压缩包(zip/tar.gz) --python...setup.py bdist --formats=zip 等价于 python setup.py sdist setuptools进阶 在上例中,在前两例中,我们基本都使用setup()的默认参数...setuptools会先检查本地有没有符合要求的依赖包,如果没有的话,就会从PyPI中获得一个符合条件的最新的包安装到本地。...执行下试试,会发现不但Flask 0.10.1(当前最新版本)被自动安装了,连Flask的依赖包Jinja2和Werkzeug也被自动安装了 如果应用依赖的包无法从PyPI中获取怎么办,我们需要指定其下载路径
Distutils可以用来在Python环境中构建和安装额外的模块。新的模块可以是纯Python的,也可以是用C/C++写的扩展模块,或者可以是Python包,包中包含了由C和Python编写的模块。...第一,开发者和安装者有同样的用户接口,也就是setup脚本,但他们使用的Distutils命令不同,sdist命令几乎只有开发者使用,而install对于安装者更常用。...比如:python setup.py sdist --owner=root --group=root 4.1、指定发布的文件如果没有明确的列出需要发布的文件,则sdist命令默认在源码发布中包含下列文件...比如,在包的源码树中运行下面的命令:python setup.py bdist Distutils就会创建发布,执行“伪”安装(在build目录中),并且创建当前平台下的默认格式的构建发布。...构建发布在Unix中的默认格式是一个”dumb”的tar文件(之所以称之为”dumb”,是因为该tar文件只有解压到特定的目录下才能工作),而在Windows上是一个简单可执行安装文件。
他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便,将程序打包以后可以可以安装到自己的虚拟环境中,也可以上传到PyPI,这样非常方便大项目开发...包 ) 使用安装文件创建 wheel 有了上面的 setup.py 文件,我们就可以打出各种安装包,主要分为两类:sdist 和 bdist。...Source distribution 使用 sdist 可以打包成 source distribution,支持的压缩格式有: 使用方式为: $ python setup.py sdist --formats...=gztar,zip 目录下便会多出 dist 和 *.egg-info 目录,dist 内保存了我们打好的包,上面命令使用 --formats 指定了打出 .tar.gz 和 .zip 包,如果不指定则如上表根据具体平台默认格式打包...Built distribution 使用 bdist 可以打出 built distribution,和源码包相比,由于预先构建好,所以安装更快: 使用上,和 sdist 一样,可以使用 --formats
PyPi的用途 Python中我们经常会用到第三方的包,默认情况下,用到的第三方工具包基本都是从Pypi.org里面下载。...1、准备好上面的步骤, 一个包就基本完整了, 剩下的就是打包了,可以使用下面命令打包一个源代码的包: python setup.py sdist build 这样在当前目录的dist文件夹下, 就会多出一个...whl文件. 3、或者从setup.py位于的同一目录运行此命令: python3 setup.py sdist bdist_wheel 上面的命令会在dist目录下生成一个tar.gz的源码包和一个...您可以使用pip来安装包并验证它是否有效。...创建一个新的virtualenv (请参阅安装包以获取详细说明)并从TestPyPI安装包: python3 -m pip install --index-url https://test.pypi.org
python中安装包的方式有很多种: 源码包:python setup.py install 在线安装:pip install 包名(linux) / easy_install 包名(window) python...包在开发中十分常见,一般的使用套路是所有的功能做一个python模块包,打包模块,然后发布,安装使用。...setup sdist 再次查看当前目录下自动生成了一个文件夹dist,文件夹中有一个压缩包即为我们的目标文件。...使用python setup.py install 安装该模块。从路径可以看出,该模块安装到标准库的制定路径下。 五、使用模块 安装好模块之后,在python的交互环境中导入模块。...三、打包 python setup.py sdist 打包之后多出两个文件夹,分别是demo.egg-info和dist。
一种从setuptools包,一种从distutils.core包,前者可以方便上传至PyPI发布....从setuptools包引入setup,要同时引入find_packages包用来搜索项目内的各packages """ from setuptools import setup, find_packages...setup.py bdist_egg # 生成类似 bee-0.0.1-py2.7.egg,支持 easy_install python setup.py sdist # 生成类似 bee-...setup.py bdist_rpm # rpm 4、Python gz压缩包制作 前2步同上 最后一步为 python setup.py sdist, 生成 tar.gz 文件 tar.gz...在Linux与Windows都可方便pip安装 pip install .tar.gz,也方便发布上PyPI 上传到 PyPI 暂时不弄,参考 怎样制作一个 Python Egg
$ pip install -e . # 从本地项目setup.py安装 使用代理服务器 当从官方的PyPI源安装比较慢的时候,可以考虑使用代理服务器,指定代理服务器的方法有三种: 使用--proxy...使用需求文件(requirements.txt) 在需要很多pip包的项目中,用pip一个个安装包不是一个好办法,这时候可以考虑使用需求文件。 如果要生成需求文件,用下面的命令。...这会将当前Python环境中的所有包的当前版本状态保存下来,将来安装的时候会精确还原到冻结的那个状态。...源码分发包(sdist) 这是最低等级的一种,基本上就是复制源代码,不过因此在安装的时候有一个必须的构建(可能包括编译)过程来生成各种元信息,哪怕项目是纯的Python项目。...用下面的命令来生成: python setup.py sdist Wheels(轮子) 在编程界各种第三方包不是被形象地称作轮子吗(著名梗:不要重复造轮子),这里就是这个意思。
默认对于 setup 脚本所在目录下同名的目录即视为包所在目录。...这描述了两个包,一个在根目录下,另一个则在 pkg 目录下。 默认的“包:目录”映射关系表明你可以在 setup 脚本所在的路径下找到 mod1.py 和 pkg/mod2.py。...安装这个包所需要的依赖,列表 tests_require 与 install_requires 作用相似,单元测试时所需要的依赖 虚拟运行环境下安装包 以 legit 为例 下载 lgit 源码...进入虚拟环境 source venv/bin/activate 安装包 pip install ....venv/lib/python2.7/site-packages/ 下安装了 legit 及依赖包 legit/venv/lib/python2.7/site-packages$ tree -L 1