精华内容
下载资源
问答
  • requirement.txt(项目依赖包及版本列表)管理项目依赖包和版本,方便项目在新环境中部署生成项目依赖包和版本列表文件(每次更新依赖包都需要更新这个文件)pip freeze > requirements.txt在新虚拟环境中创建这个虚拟...

    requirement.txt(项目依赖包及版本列表)

    管理项目依赖包和版本,方便项目在新环境中部署

    生成项目依赖包和版本列表文件(每次更新依赖包都需要更新这个文件)

    pip freeze > requirements.txt

    在新虚拟环境中创建这个虚拟环境的完全副本

    pip install -r requirements.txt

    在ruby中习惯用gemfile来管理项目中依赖包,可以通过bundle install安装gemfile中的包,并且如果本地存在一个包的多个版本时,会通过gemfile来指引该项目用某个包版本,所以本地可以安装一个包的多个版本供项目选择

    在python中,好比我两个项目都是基于python3的但一个需要Django1.8版本的一个需要Django1.9版本我第一反应是公用一个虚拟环境,在一个虚拟环境中安装多个版本的Django,但是后来发现python中一个虚拟环境不允许安装一个包的多个版本(后一个会把前一个覆盖掉),所以这也是在python中一个项目创建一套虚拟环境的必要性(每个项目所以依赖的包不同)

    后来了解到python中可以通过requirement.txt来管理项目包依赖,只不过是可以在新的虚拟环境中创建项目所需依赖的完全副本,并不能通过这个指引项目用本地的某个版本的包这就是ruby跟python的区别

    展开全文
  • 所以可以利用工具生成对应的依赖包文件,在服务器上执行对应的依赖包文件即可。 安装工具 pip install pipreqs 生成依赖文件 切换到项目根目录执行命令: 如果不是在项目里面terminal执行命令的话,这里的这个路径...

    前期的基础环境搭建参照:Linux 如何部署 python项目(环境搭建)

    Python项目的准备工作

    项目依赖生成

    python 项目 需要很多依赖,如果自己手动进行每个依赖的安装,要先寻找所用的每个依赖,然后进行对应依赖的安装,是很麻烦的一件事情

    所以可以利用工具生成对应的依赖包文件,在服务器上执行对应的依赖包文件即可。

    安装工具

    pip install pipreqs
    

    如果报错,参照这两篇博文:

    解决办法之执行pip install出现Could not install packages due to an EnvironmentError: [WinError 5] 拒绝访问

    解决办法之 ModuleNotFoundError: No module named ‘pip‘

    生成依赖文件

    切换到项目根目录执行命令:

    如果不是在项目里面terminal执行命令的话,这里的这个路径就是你项目的地址。

    pipreqs ./
    

    正常的话应该会在项目根目录下生成一个requirements.txt文件

    在这里插入图片描述

    如果出现:

    UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0x80 in position 356: illegal multibyte sequence

    采用:

    pipreqs ./ --encoding=utf-8
    

    当项目里已经有了requirements .txt文件时,执行会命令会提示警告,可以通过增加"–force"参数来处理:

    pipreqs ./ --encoding=utf-8 --force
    

    注意:若生成的文件有个别依赖包被遗漏,可以检查一下缺失的包名,将包名手工加到文件中。

    安装依赖包

    在将项目放在服务器上或者是拉取别人的项目到本地生成requirements .txt文件后,可以进行依赖包的一键安装

    执行以下命令

    pip install -r requirements.txt
    

    这样的话我们的项目所需的所有依赖包就安装好了

    展开全文
  • 打包&发布Python项目

    2021-10-28 09:44:32
    打包与发布python项目主要包含三个过程,第一配置打包信息,主要通过setuptools工具实现;第二步打包生成wheel或者sdist(source distribution)文件,主要使用build工具;第三步将打包好的wheel、或者sdist文件发布到...

    概述

    打包与发布python项目主要包含三个过程,第一配置打包信息,主要通过setuptools工具实现;第二步打包生成wheel或者sdist(source distribution)文件,主要使用build工具;第三步将打包好的wheel、或者sdist文件发布到PYPI,使用twine工具。

    pip install setuptools>=42 build twine
    

     

    配置打包信息

    配置打包信息涉及的知识很多,这里仅记录以下几部分,更多信息请看参考资料。
     

    module与package的区别

    在打包项目之前,首先了解下Python中module与package的概念及区别。module的官方定义为**“A module is a file containing Python definitions and statements. ”,可以理解为后缀为py的脚本。在module中定义的函数、变量等对象,可以使用import语句导入到其它mudule中使用,注意在import语句中,被导入的函数、变量及其它对象只会在第一次导入时执行,后续重复导入不会执行**。因此如果“先导入module, 然后修改module中的对象定义,然后再导入module,被修改的内容不会生效——可以通过重启python interpreter, 或者importlib.reload方式解决。”

    “Note For efficiency reasons, each module is only imported once per interpreter session. Therefore, if you change your modules, you must restart the interpreter – or, if it’s just one module you want to test interactively, use importlib.reload(), e.g. import importlib; importlib.reload(modulename).”

    当使用import导入module时,python对module的搜索路径为“内置库–>>sys.path”, 其中sys.path的值由以下三部分决定:
    - 当前所在目录。
    - python环境变量PYTHONPATH, python环境变量可以通过os.environ查看。
    - 包安装的目录site-package。

    package的官方定义“Packages are a way of structuring Python’s module namespace by using “dotted module names”. ”, 可以理解为package为module的集合,再加上一个__init__.py, package的目的是通过一个命名空间方便的管理module。“The__init__.py files are required to make Python treat directories containing the file as packages. ”。__init__.py一般为空,也可以包含一个__all__变量,该变量的值是一个列表,列表值为需在from package import *中导入的module名称。

    需注意,import有两种导入形式,一种是绝对路径,另一种是相对路径。在相对import中, 前置的一个句点表示current package,前置的两个句点表示parent package。
     

    setuptools中的依赖管理

    setuptools包含三种依赖,第一种是系统层级的,打包python项目所必须的,一般依赖为setuptools与wheel,并且需要写入pyproject.toml文件中;第二种依赖为module正常运行所需的依赖,这种依赖在setup.py或者setup.cfg中用install_requires关键字指明,install_requires值为一个列表,列表中的值为需要安装的包及版本标识,还可以为每个包加上平台依赖条件。setuptools会自动到pypi中下载指定条件的包。如果依赖的包不在pypi,可以指定dependency_links,到指定的url去下载包。最后一种依赖是在特定条件下才需要的依赖,比如test模块中可能需要的依赖,当需要时才安装。
     

    在打包时加入数据文件

    打包时添加数据文件,或者其它格式的文件,主要有三种方式,第一种方式为在setup.py中指定include_package_data=True,以及编写MANIFEST.in文件;第二种方式为指定关键字package_data,其值是一个字典,键为“包名称”,若为空,则匹配所有package,值为模式列表。第三种方式为exclude_package_data,语法与package_data,只是将file打包,但不安装。
     

    打包

    如果是纯python项目,建议使用以下命令:python -m build --wheel
     

    上传至PYPI

    执行上述命令后,会生成一个dist目录,该目录中包含生成的wheel文件,将该文件上传到PYPI即可, twine upload dist\*

     

    参考资料

    Packaging Python Projects
    Packaging and distributing projects
    Building and Distributing Packages with Setuptools
    Including files in source distributions with MANIFEST.in
    setuptools:从下载链接安装pytorch:403禁止

    展开全文
  • 声明依赖项在setup.py中有一个名为install_requires = [""]的选项:例如:setup(name='django-cherrypy',version='0.1',packages=packages,license='LICENSE',description='cherrypy, running under django',long_...

    声明依赖项

    在setup.py中有一个名为install_requires = [""]的选项:

    例如:setup(

    name='django-cherrypy',

    version='0.1',

    packages=packages,

    license='LICENSE',

    description='cherrypy, running under django',

    long_description=open('README.md').read(),

    author='Calvin Cheng',

    author_email='calvin@calvinx.com',

    install_requires=['cherrypy-wsgiserver'],

    extra_requires=['newrelic'],

    url='https://github.com/od-eon/django-cherrypy',

    )

    此设置要求cherrypy WSGI服务器库。在

    捆绑所有东西Depedencies in PiPy :When your project is installed, either by using EasyInstall,

    setup.py install, or setup.py develop, all of the dependencies not

    already installed will be located (via PyPI), downloaded, built (if

    necessary), and installed.

    Any scripts in your project will be

    installed with wrappers that verify the availability of the

    specified dependencies at runtime, and ensure that the correct

    versions are added to sys.path (e.g. if multiple versions have been

    installed).

    Python Egg distributions will include a metadata file

    listing the dependencies

    Dependencies that aren’t in PyPI

    If your project depends on packages that aren’t registered in PyPI,

    you may still be able to depend on them, as long as they are available

    for download as:an egg, in the standard distutils sdist format,

    a single .py file,

    or a VCS repository (Subversion, Mercurial, or Git). You just need to add some URLs to the dependency_links argument to setup().

    展开全文
  • pyinstaller模块用于将python项目打包发布成exe文件,以方便地在没有安装python环境的机器上运行。该模块使用pip install pyinstaller安装即可。 一、常用参数及含义 参数 执行命令 含义 -D ...
  • Python代码的编译Python代码在解释执行之前,是会被编译成.pyc或者.pyo文件的,它们是中间字节码表示的文件,之后Python虚拟机才会去解释执行它们。1、pyc文件=========pyc是一种二进制文件,是由py文件经过编译后,...
  • 目前python打包工具有多个,目前比较好用的为pyinstaller,该工具可以支持在window和linux下使用。 在windows下,大小为几十K的源文件打包成exe文件,可能为几十兆,原因是把程序所引用的库文件也一起打包在一起。...
  • 本文作者写了一份在 GitHub 上发布 python 的简单分步指南。作者以 SciTime 项目(一个对算法训练时间进行估计的)的发布为例,详细解释了发布的每个步骤。注意:本文假设你在 GitHub 上已经有一个想要打包和...
  • 打包发布qt+python软件

    2021-06-03 12:54:54
    最近开发了一款可视化软件平台,初次接触Qt,在这里简单记录一下软件(Qt+Python)的打包过程。 对于qt的依赖库,qt提供了windeployqt.exe来进行打包
  • 参考:那么如何在GitHub上发布Python包呢?本文详细介绍如果制作一个可以发布在GitHub上并通过GitHub安装的Python。背景我们知道在用Python写爬虫的时候会遇到提交cookies的情况,我们通过浏览器审查元素得到的...
  • 发布自己的python包

    2021-02-08 20:01:05
    在开课吧app中听了一点体验课,大概了解到如何发布自己的python包到pypi,觉得有趣,所以练习了一下。完成过程将在本文记录下来。所发布用pip install 命令就可以安装,在python代码中用import命令就可以导入,...
  • 依赖管理

    2020-12-18 06:48:14
    如果我们的项目依赖第三方的jar,例如commons logging,那么问题来了:commons logging发布的jar在哪下载?如果我们还希望依赖log4j,那么使用log4j需要哪些jar?类似的依赖还包括:JUnit,JavaMail,MySQL...
  • 大家的统一答案都是otool -L yourapp.app/Contents/MacOS/yourapp根据输出信息在运行 install_name_toolinstall_name_tool的使用方法在这里比较复杂的是当依赖了很多第三方库,尤其是向QT这样的库的时候。...
  • 确保要发布(demo)的根目录中有__main__.py文件,这个是程序执行入口。编译python3 -O -m compileall demo批量改名.pyc文件find . -name '*.pyc' -exec rename 's/.cpython-35.opt-1//' {} \;移动.pyc文件find . ...
  • poetry是一个Python虚拟环境和依赖管理的工具,之前用pipenv,最近学习httprunner时,接触了poetry。poetry和pipenv类似,另外还提供了打包和发布的功能。官方文档:python-poetry.org/docs/python项目部署:poetry...
  • 简介 Poetry 是一个管理和打包的工具。...因此, poetry 将所有的配置都放置在一个 toml 文件(pyproject.toml)中,这些配置包括:依赖管理、构建、打包、发布。 Poetry 的灵感来自于其他语言的一些工具
  • 趁端午有时间,想把haipproxy的客户端发布到PyPI,以改进用户体验,因此这次又尝试了如何将Python包发布到新版本的PyPI上。编写setup.py以haipproxy为例,它的setup.py如下from os import path as os_pathfrom s...
  • pycharm + python3 + win71pip install pyinstall (官网)2 准备 .py 文件3 具体例子from PyQt5.QtWidgets import QApplication, QDialog, QRadioButton, QVBoxLayout, QGroupBox, QHBoxLayout, QLabelimport sysfrom...
  • pipenv 是什么pipenv 是 python 官方推荐的管理工具,集成了 virtualenv、pyenv 和 pip 三者的功能于一身,类似于 php 中的 composer。我们知道,为了方便管理 python 的虚拟环境和库,通常使用较多的是 ...
  • wheel文件Wheel和Egg都是python的打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。... Wheel现在被认为是Python的二进制...
  • Python 打包指南

    2021-01-12 08:22:02
    因为项目是开源的,所以您希望发布能够体现出开源社区所具备的优点。不同的平台与语言具有不同的打包机制,本文主要讲述的是 Python 及其打包机制。本文所讨论的打包机制可以作为您的基础学习,此外还提供了大量...
  • 目录python代码的用途编写setup.py生成whl和tar.gz文件 python代码的用途 当你想打包一个目录时,需要现在目录中放一个_init_.py,该文件叫初始化文件,文件可以为空,也可以放一些代码。举例: 目录hello ...
  • 零折腾发布Python包

    2021-08-19 18:04:52
    零折腾发布Python包零折腾发布Python包问题悖论源码结构setup.py打包发布 零折腾发布Python包 本着社区精神,手上有好的代码就想要发布到社区,这样别人用起来就很愉快。对于Python而言,PYPI就是方便我们站在巨人...
  • python编辑器推荐使用python tools for visual studio ,个人感觉是最好用的Python编辑工具,比Wing之类的好用多了。VPTS打开使用Wing编辑过的py文件,如果编辑任何代码都提示语法错误,是因为python不允许同时使用...
  • 全文共7134字,预计学习时长14分钟假设你很喜欢用同一段Python代码,里面有几个相关的小型函数,或者是含有几百行代码的中型模块。程序员可能会把它复制到不同的项目或存储库中,或者从特别设置的实用工具代码文件夹...
  • 客户环境不能上网,开始想把所有依赖包下载下来,进入客户环境进行安装。但为了避免出差,部署工作交给其他同事了,我想还是需要更简单的方式。实验了一下virtualenv是可以的1. 创建一个新的环境(改为virtualenv --...
  • 打包发布python项目

    2021-08-09 09:29:45
    英文搜索:package publish python project(打包发布python项目)。搜索过程中发现官方名称是:Packaging and distributing projects 参考: How to Publish an Open-Source Python Package to PyPI 如何打包发布...
  • Python打包工具比较

    2021-02-04 01:50:34
    Python打包工具比较SolutionWindowsLinuxOS XPython 3LicenseOne-file modeZipfile importEggspkg_resources supportbbFreezeyesyesyesnoMITnoyesyesyespy2...
  • 1.1 导出项目依赖包: pip freeze > requirements.txt 1.2 先将本地包打包到packages目录下: pip download -d packages/ -r requirements.txt 1.3 然后到将包离线安装到执行环境: pip install --no-...
  • 现在可以直接通过pip和easy_install来安装VASPy啦(同时欢迎使用VASP做计算化学的童鞋们加星和参与进来),VASPy的GotHub地址:https://github.com/PytLab/VASPyVASPy的PyPI地址:https://pypi.python.org/pypi/vaspy/...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 74,104
精华内容 29,641
关键字:

发布python依赖包

python 订阅