package打包 python_python 打包package - CSDN
精华内容
参与话题
  • Python打包成库供别的模块调用

    万次阅读 2018-09-19 20:55:10
    1.创建python项目bricewulib 2.新建test_package包并创建log类以及get_log方法

    1.创建python项目bricewulib
    在这里插入图片描述
    2.新建test_package包并创建info1类以及print_hello方法
    在这里插入图片描述
    3.为了让包的结构再复杂点,我们再在test_package下面新建一个test_package2包并创建Info2类以及print_hello2方法(注意:这里是Info2,不是上面的Info1)
    在这里插入图片描述
    4.此时整个test_package编写完成,目录结构(test_package包包含test_package2包以及info1类,test_package2包中又包含info2类)
    在这里插入图片描述

    5.编写:setup.py,注意:setup.py与test_package包同在bricewulib根目录下,而setup.py中的内容如下图
    其中比较重要的几项是:name,version,packages
    name:描述的是你打包的文件文件名。
    version描述的是文件的版本号。
    packages是所有要打包的包(package),这里需要打包的是test_package包以及test_package包下的test_package2。所以packages=[‘test_package’,‘test_package.test_package2’]。包与包之间用逗号“ ,”隔开
    在这里插入图片描述
    6.命令:python setup.py sdist 为模块创建一个源码包(linux下的命令,windows下自寻上网查询或见此博客的参考链接)
    在这里插入图片描述
    7.多了一个MANIFEST文件以及文件夹dist,而我们的源码包就在dist文件夹下面
    在这里插入图片描述
    8.我们将其解压得到文件夹bricewulib-1.0,并进入文件夹bricewulib-1.0
    在这里插入图片描述
    9.到bricewulib-1.0目录下执行:sudo python setup.py install进行库的安装
    在这里插入图片描述
    10.此时,我们的/usr/local/lib/python2.7/dist-packages/目录下会多出一个文件bricewulib-1.0.egg-info和文件夹test_package,如图(从上面的安装信息也可以看出):
    在这里插入图片描述
    11.进入文件夹test_package可以看到,这里的文件即是我们的源码:
    在这里插入图片描述
    12.至此打包完成。
    13.新建mytest项目来调用test_package包,依次通过 Info1.print_hello(),Info2.print_hello2()方法分别调用
    在这里插入图片描述
    参考链接:
    https://blog.csdn.net/Julialove102123/article/details/80009971
    https://blog.csdn.net/lynn_kong/article/details/17540207
    http://www.cnblogs.com/UnGeek/p/5922630.html

    展开全文
  • Python轮子打包whl文件

    千次阅读 2018-11-18 21:44:23
    一、安装setuptools库 pip install setuptools ...其中print1.py和print2.py是要打包python代码,pagtest是一给文件夹,要把代码结构整理成如下的格式: pagtest/ __init__.py print1.py ...

    一、安装setuptools库

    pip install setuptools

    二、编写setup.py文件和__init__.py文件,整理代码结构

    首先注意目录的架构

    其中print1.py和print2.py是要打包的python代码,pagtest是一给文件夹,要把代码结构整理成如下的格式:

    pagtest/
        __init__.py
        print1.py
        print2.py
    setup.py
    README.txt

    __init__.py文件可以为空

    READDME.txt为介绍文件

     

    setup.py参数介绍:

    name : 打包起来的包的文件名
    version : 版本号,添加为打包文件的后缀名
    author : 作者
    author_email : 作者的邮箱
    py_modules : 打包的.py文件
    packages: 打包的python文件夹
    include_package_data : 项目里会有一些非py文件,比如html和js等,这时候就要靠include_package_data 和 package_data 来指定了。package_data:一般写成{‘your_package_name’: [“files”]}, include_package_data还没完,还需要修改MANIFEST.in文件.MANIFEST.in文件的语法为: include xxx/xxx/xxx/.ini/(所有以.ini结尾的文件,也可以直接指定文件名)
    license : 支持的开源协议
    description : 对项目简短的一个形容
    ext_modules : 是一个包含Extension实例的列表,Extension的定义也有一些参数。
    ext_package : 定义extension的相对路径
    requires : 定义依赖哪些模块
    provides : 定义可以为哪些模块提供依赖
    data_files :指定其他的一些文件(如配置文件),规定了哪些文件被安装到哪些目录中。如果目录名是相对路径,则是相对于sys.prefix或sys.exec_prefix的路径。如果没有提供模板,会被添加到MANIFEST文件中。
    

    例如: 

    from setuptools import setup
    setup(name='Qingolddriving',
          version='1.0',
          description='A olddriver',
          author='Qingtai',
          author_email='1120359293@qq.com',
          packages=['Qingolddriver'],
          )

    三、生成whl文件:

    cd到该目录执行命令

    cd /d F:

    python setup.py bdist_wheel

     

    展开全文
  • Python离线安装package

    万次阅读 2018-03-16 14:26:20
    Python离线安装package因为所使用办公桌面无法连网,因此只能通过离线包来安装package。1 安装pip先在PyPI(https://pypi.python.org/pypi)下载setuptools(38.6.0)、pip(9.0.1),如下图。然后解压压缩包,在cmd中...

    Python离线安装package

    因为所使用办公桌面无法连网,因此只能通过离线包来安装package。

    1 安装pip

    先在PyPI(https://pypi.python.org/pypi)下载setuptools(38.6.0)、pip(9.0.1),如下图。

    然后解压压缩包,在cmd中进入解压文件目录,输入“python setup.py install”,分别安装setuptools、pip。

    安装完成后,在C:\Python27\Scripts目录可以看到pip.exe,在cmd中输入“pip list”可以查看当前Python已经安装有哪些package。(注意将C:\Python27\Scripts加入系统环境变量)

    2 打包package

    在可连网环境下打包所需的package,通过cmd进入某个指定目录(例如C:\Info),输入“pip freez >PackagesInfo.txt”

    此时在C:\Info目录下会生成一个PackagesInfo.txt文件,里面有已安装package的信息。

    然后在cmd中输入“pip install --download C:\packages -r PackagesInfo.txt”,PackagesInfo.txt指定要下载的package,C:\packages指定将package下载到哪个路径下。

    3 安装package

    将下载好的packages以及PackagesInfo.txt拷贝到无法连网环境下,然后在cmd中进入到PackagesInfo.txt所在目录,并执行以下命令“pip install --no-index --find-links=C:\packages -r PackagesInfo.txt”。

    安装完成之后可以通过“pip list”查看以下安装成功的package。


    参考资料

    https://www.cnblogs.com/michael-xiang/p/5690746.html

    https://www.cnblogs.com/l-w-q/p/6277074.html


    展开全文
  • python项目打包虚拟环境

    千次阅读 2019-04-25 10:28:34
    python项目打包时,需要将虚拟环境与python自身安装路径下的lib包整合在一起,将如下内容保存为packvenv.sh文件,修改PYTHON_PATH(python的安装路径)以及VENV_PATH(虚拟环境的全路径)为自己的目录,然后给文件...

    python项目打包时,需要将虚拟环境与python自身安装路径下的lib包整合在一起,将如下内容保存为packvenv.sh文件,修改PYTHON_PATH(python的安装路径)以及VENV_PATH(虚拟环境的全路径)为自己的目录,然后给文件添加执行权限:chmod +x packvenv.sh,./packvenv.sh执行即可

    Linux:packvenv.sh

    #!/bin/bash
    
    PYTHON_PATH=/usr/local/python2.7
    VENV_PATH=~/.virtualenvs/venv-linux6
    
    VENV_NAME=`basename $VENV_PATH`
    
    echo $VENV_NAME
    
    mkdir $VENV_NAME
    mkdir $VENV_NAME/bin
    
    # copy python lib 
    cp -r $PYTHON_PATH/lib $VENV_NAME/lib
    rm -rf $VENV_NAME/lib/python2.7/site-packages
    
    # copy venv python
    cp $VENV_PATH/bin/python $VENV_NAME/bin/ || exit 1
    
    # copy venv lib
    packdir=$VENV_PATH/lib/python2.7
    for e in `ls $packdir`
    do
        files=$packdir/$e
        realfiles=`readlink $files`
        if [ $realfiles ]; then
            cp -r $realfiles $VENV_NAME/lib/python2.7/
        else
            cp -r $files $VENV_NAME/lib/python2.7/
        fi  
    done
    
    # remove .pyc .pyo and test files
    remove_pyc_and_pyo_files() {
        for e in `ls $1`
        do  
            fullpath=$1/$e
            if [[ "${e:0-5}" == "-info" || "${e:0-4}" == ".pyc" || "${e:0-4}" == ".pyo" || "$e" == "test" ]]; then
                echo delete file:$fullpath
                rm -rf $fullpath
            elif [ -d $fullpath ]; then
                remove_pyc_and_pyo_files $fullpath
            fi  
        done
    }
    
    remove_pyc_and_pyo_files $VENV_NAME/lib/python2.7
    
    rm -rf $VENV_NAME/lib/pkgconfig
    cd $VENV_NAME/lib
    ln -s python2.7 python
    

    Windows:packvenv.bat

    SET WD=%CD%
    SET PACKAGEPATH=%WD%\win-build
    SET "VIRTUALENV=venv"
    SET "VIRTUALENVPATH=C:\Users\Administrator\Envs"
    SET "PYTHON_HOME=C:\Python27"
    SET "PYTHON_DLL=C:\Windows\SysWOW64\python27.dll"
    
    :: get Python version for the runtime build ex. 2.7.1 will be 27
    FOR /f "tokens=1 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MAJOR=%%G
    FOR /f "tokens=2 DELims=." %%G IN ('%PYTHON_HOME%/python.exe -c "import sys; print(sys.version.split(' ')[0])"') DO SET PYTHON_MINOR=%%G
    SET "PYTHON_VERSION=%PYTHON_MAJOR%%PYTHON_MINOR%"
    
    
    MKDIR "%PACKAGEPATH%\%VIRTUALENV%" > nul || EXIT /B 1
    MKDIR "%PACKAGEPATH%\bin" > nul || EXIT /B 1
    
    ECHO Copying python DLLs...
    XCOPY /S /I /E /H /Y "%PYTHON_HOME%\DLLs" "%PACKAGEPATH%\%VIRTUALENV%\DLLs" > nul || EXIT /B 1
    
    ECHO Copying python Lib...
    XCOPY /S /I /E /H /Y "%PYTHON_HOME%\Lib" "%PACKAGEPATH%\%VIRTUALENV%\Lib" > nul || EXIT /B 1
    RD /Q /S "%PACKAGEPATH%\%VIRTUALENV%\Lib\site-packages" 1> nul 2>&1 || RD /Q /S "%PACKAGEPATH%\%VIRTUALENV%\Lib\site-packages" 1> nul 2>&1
    
    ECHO Copying virtual environment...
    XCOPY /S /I /E /H /Y "%VIRTUALENVPATH%\%VIRTUALENV%\Lib" "%PACKAGEPATH%\%VIRTUALENV%\Lib" > nul || EXIT /B 1
    
    IF %PYTHON_MAJOR% == 2 (
        :: 如果site-packages中有backports模块,则需要执行此语句,这是因为python3以前该模块少个__init__.py文件
        ECHO Fixing backports.csv for Python 2 by adding missing __init__.py...
        type nul >> "%PACKAGEPATH%\%VIRTUALENV%\Lib\site-packages\backports\__init__.py"
    )
    
    ECHO Cleaning up unnecessary *.pyc *.pyo and tests files...
    FOR /R "%PACKAGEPATH%\%VIRTUALENV%" %%f in (*.pyc *.pyo) do DEL /q "%%f" >nul 2>&1
    FOR /R "%PACKAGEPATH%\%VIRTUALENV%" %%f in (tests) do RD /S /Q "%%f" >nul 2>&1
    
    ECHO Staging Python...
    COPY %PYTHON_DLL% "%PACKAGEPATH%\bin" > nul || EXIT /B 1
    COPY %PYTHON_HOME%\python.exe "%PACKAGEPATH%\bin" > nul || EXIT /B 1
    COPY %PYTHON_HOME%\pythonw.exe "%PACKAGEPATH%\bin" > nul || EXIT /B 1
    
    EXIT /B 0

     

    展开全文
  • python工程代码如何打包

    千次阅读 2018-08-21 12:02:18
    创建一个空文件夹 example_pkg, 再添加一个同名的子文件夹,包含一个init.py文件. 如下图所示: /example_pkg /example_pkg \__init\__.py ...现在,您将创建一些文件来打包这个项目,并为...
  • python模块打包和安装

    千次阅读 2018-11-06 12:09:12
    python模块打包和安装 为了让写好的代码方便给别人或者自己使用,最好的方法就是将自己的代码打包python中代码打包很简单。 打包 先看下代码的目录结构 途中的项目是一个简单的示例 为了打包,我们需要在项目的根...
  • 运行python2.6.6上使用pyinstaller打包的应用程序报错ImportError: The ‘packaging’ package is required; normally this is bundled with this package so if you get this warning, consult the packager of ...
  • python程序打包为egg——setuptools模块

    千次阅读 2015-12-13 23:10:41
    新建文件夹my-package,文件夹下创建如下setup.py(务必为此名字)文件 # encoding: utf-8from setuptools import setup, find_packagessetup( name="demo", # egg包名 version="0.0.9", description="get ...
  • Pythonpackage安装到哪里了?

    千次阅读 2016-12-07 15:41:09
    Pythonpackage安装到哪里了?package放到哪里去了? 怎么好像乱七八糟的?打开site-packages目录, 里面是各种安装好的包. 但是目录名格式各异. 这是怎么回事?
  • python项目打包发布总结

    万次阅读 2016-12-19 13:33:31
    distutils,setuptools,pip,virtualenv
  • Python如何发布程序

    万次阅读 2019-07-22 21:20:07
    如何发布一个Python程序: 1.安装一个pyInstaller 在pycharm里点 file —–>setting—–>Project workspace——>Interpreter ——>点pip右边的+号,进入下面这个界面: ...
  • 背景: 利用setuptools来实现,所以先安装setuptools,其实Python2.7.9及之后的版本都自带安装setuptools了,无需在另外安装 如果没有安装setuptools的直接下载源码包解压安装就行了 示例:以linux环境为例 1....
  • python爬虫环境准备-安装anaconda

    万次阅读 2017-11-15 19:25:03
    在windows环境下,比较头疼的就是包管理和Python不同版本的问题,为了解决这些问题,有不少发行版的Python,比如WinPython、Anaconda等,这些发行版将python和许多常用的package打包,方便python开发者使用。...
  • 无网络环境用pip安装python类包

    千次阅读 2018-09-21 10:56:22
    2.安装完成后 打包 1)新建一个文件夹(package),用来存放包; 2)执行 pip list #查看安装的包 pip freeze >requirements.txt pip install --download 路径:\package -r requirements.txt 3.将打包...
  • python包发布到PyPI和制作whl文件

    万次阅读 2018-05-24 11:09:49
    Wheel和Egg都是python打包格式,目的是支持不需要编译或制作的安装过程,实际上也是一种压缩文件,将.whl的后缀改为.zip即可可看到压缩包里面的内容。按照官网说法,wheels是发行版Python的新标准并且要取代....
  • 1、在setup.py中设置include_package_data=True 格式参照: from setuptools import setup, find_packages setup( name='your_project_name', version='0.1', description='A description.', packages=find.....
  • Kivy A to Z -- Android apk的生成过程

    千次阅读 2014-04-06 21:49:26
    1. 在《Kivy的编译环境的搭建以及编译和...../../build/hostpython/Python-2.7.2/hostpython build.py --package org.test.touchtracer --name touchtracer --version 1.0 --dir ../../build/kivy/kivy-stabl
  • python中自动化部署setup.py的写法

    千次阅读 2018-04-19 20:41:19
    编写python的第三方库,最重要的一个工作就是编写setup.py了,如果我们下载过一些第三库的源代码文件,打开之后一般就会有一个setup.py,执行python setup.py install 就可以安装这个库了。setup.py 如何编写内容很多...
  • Linux环境下的Anaconda安装及使用

    万次阅读 2017-09-24 00:45:47
    Anaconda对于python就相当于Ubuntu对于Linux,即Anaconda是python的一个发行版,将python和许多常用的package打包,方便pythoners直接使用。像virtualenv、pyenv等工具管理虚拟环境,起到的作用也是类似的。Anaconda...
  • 这里整理一下常见的几种包安装方式1、pip install package_name使用pip工具安装,此方法比较常用,方便快捷,自动下载安装包到当前python环境,如果需要指定下载安装某个版本的包,只需写成这个形式pip install ...
1 2 3 4 5 ... 20
收藏数 20,511
精华内容 8,204
热门标签
关键字:

package打包 python