当前位置: 首页 > Linux

Linux下Python3.9任意目录快速编译安装配置实用指南

时间:2023-04-06 01:32:20 Linux

Date需要root或sudo权限)通过官方源码包编译安装Python3.9快速安装指南。编译安装Python3.9可能需要安装openssl、readline等一些前置依??赖库,虽然也可以下载源码一一编译安装,但是有点繁琐。所以建议在一键安装前通过yum使用root或者sudo权限。设置依赖项。(因此必须再次需要root或sudo权限)。当然,如果你系统的这些前置依赖已经安装好了,你就不需要再安装了,所以你还是不需要root或者sudo权限。1、一键安装yum前置依赖sudoyum-yinstallzlibzlib-develbzip2bzip2-develncursesncurses-develreadlinereadline-developensslopenssl-developenssl-staticxzlzmaxz-develsqlitesqlite-develgdbmgdbm-开发tktk-devellibffilibffi-devel2。Python3.9官方源码包下载地址:https://www.python.org/downlo...下载Python3.9.15源码包,百度云盘链接地址。下载的Python-3.9.15.tgz大约25M,很小。注:我们也经常去pypi.org官网下载python库。下面将简单介绍一下python在pypi.org上下载完库文件后是如何进行安装操作的。3.编译安装Python3.9cd${TMP_DIR}tarzxvfPython-3.9.15.tgzcdPython-3.9.15./configure--enable-shared--enable-optimizationsCFLAGS=-fPIC--prefix=${下LinuxINSTALL_DIR}makemakeinstall在这里加上--enable-shared和-fPIC后可以编译出python3动态链接库,一般是libPython.so,大约10-30M,生成的Python可执行程序的运行依赖于这个动态库。如果不指定选项,编译完成后会生成一个libPython.a,生成的Python可执行程序会完整的打包.a中的所有内容,不会依赖.a静态库。但是如果编译第三方库需要caffe等python接口,会报错,所以建议加上上面的--enable-shared和-fPIC参数。注意:如果有一天你想把python可执行程序复制到另一台机器上,记得把这个libPython.so.xxx连同它一起复制。它的位置在python安装目标目录下的lib目录下。一般建议加上--enable-optimizations选项,可以提高python的执行速度10%左右。整个过程编译安装大约需要5-8分钟。4.Python可以使用初始配置python3.9编译安装后,需要如下初始配置可用或好用。4.1.bashrc环境变量配置注意:默认python3版本后生成的可执行程序命令为python3或pip3。python和pip之间的软连接必须建立很长时间。cd${INSTALL_DIR}/binln-sfpython3pythonln-sfpip3pip然后在~/.bashrc中添加如下环境变量:exportPYTHON39_HOME=${INSTALL_DIR}exportPATH=${PYTHON39_HOME}/bin:${PATH}#Makepythonpip等可执行命令exportLD_LIBRARY_PATH=${INSTALL_DIR}/lib:${LD_LIBRARY_PATH}#MakelibPython.so.xx等库exportVIRTUALENVWRAPPER_PYTHON=${PYTHON39_HOME}/bin/python#virtualenv-wrapper使用的python解释器exportWORKON_HOME=${HOME}/.venv.2022#virtualenv-wrapper使用python配置根目录source${PYTHON39_HOME}/bin/virtualenvwrapper.sh#Makemkvirtualenv/workon/deactivate/cpvirtualenv/可以找到lsvirtualenv/cdvirtualenv/rmvirtualenv等命令。上面最后三行是virtualenvwrapper虚拟环境相关的环境变量和source设置,后面会详细说明。重新source~/.bashrc后,执行以下命令,显然正常说明设置有效。第一个source可能会报错-bash:/xxx/python39/bin/virtualenvwrapper.sh:Nosuchfileordirectory,没关系,因为此时还没有安装virtualenvwrapper,安装virtualenvwrapper后进行如下操作,这个文件自然会存在。whichpythonwhichpippython-Vpip-V4.2pip升级和配置新版本的Python比如默认的python3.9默认安装了pip工具。因此不需要单独安装pip。pip唯一要做的就是:4.2.1设置pip配置文件mkdir~/.pip#是pip默认配置文件所在的目录,如果没有vim要创建~/.pip/pip。conf设置如下内容#~/.pip/pip.confcontent[global]timeout=10000index-url=http://pypi.douban.com/simpleextra-index-url=http://mirrors.aliyun.com/pypi/simple/#extra-index-url=https://pypi.tuna.tsinghua.edu.cn/simple/#extra-index-url=http://pypi.mirrors.ustc.edu.cn/simple/[install]trusted-host=pypi.douban.com#trusted-host=mirrors.aliyun.com#trusted-host=pypi.tuna.tsinghua.edu.cn#trusted-host=pypi.mirrors.ustc.edu.cn4.2.2升级pip如果不是最新版本。#Note在执行该命令之前,必须确保:whichpython指向的是刚刚安装的python位置,也就是说升级了这个位置的pip,否则可能升级了机器上其他位置的pip。python-mpipinstall--upgradepip4.3virtualenvwrapperpython虚拟环境的安装配置有很多,这里推荐功能强大的virtualenvwrapper。4.3.1安装virtualenvwrapper注意:第一次使用pipinstall时会报找不到pbr的错误。pbr是新一代的python打包管理工具,相当于setuptools的升级产品。虽然我们可以不用它,但是我们还是需要一键安装pbr。(就像java打包我们可以继续使用maven代替新一代的gradle)。#安装pbr,安装后会生成${PYTHON39_HOME}/bin/pbr可执行程序;${PYTHON39_HOME}/lib/python3.9/site-packages也会生成pbr相关包。pipinstallpbr#安装virtualenvwrapper。安装完成后,${PYTHON39_HOME}/bin会生成4个新文件:virtualenv、virtualenv-clone、virtualenvwrapper.sh和virtualenvwrapper_lazy.sh。${PYTHON39_HOME}/lib/python3.9/site-packages下也会生成virtualenvwrapper相关的包。pipinstallvirtualenvwrapper4.3.2配置virtualenvwrapper在~/.bashrc中添加如下3行virtualenvwrapper的配置如下:exportVIRTUALENVWRAPPER_PYTHON=${PYTHON39_HOME}/bin/python#virtualenv-wrapper使用python解释器exportWORKON_HOME=${HOME}/.venv.2022#virtualenv-wrapper使用python配置根目录source${PYTHON39_HOME}/bin/virtualenvwrapper.sh#makemkvirtualenv/workon/deactivate/cpvirtualenv/lsvirtualenv/cdvirtualenv/rmvirtualenv等命令可以找到resource~/.bashrc,source${PYTHON39_HOME}/bin/virtualenvwrapper.sh不会再报错找不到了。此时就可以使用virtualenvwrapper相关的命令了。注意:虽然可以使用mkvirtualenv等virtualenvwrapper相关的命令,但是执行whichmkvirtualenv时还是找不到,因为是python函数。可以使用type-amkvirtualenv找到此命令的功能实现。4.3.3Virtualenvwrapper使用概述virtualenvwrapper作为一个极其强大的python虚拟环境,必须要熟练掌握它的常规用法。如下:命令含义及用法mkvirtualenvmkvirtualenv-p/path/to/python--copiesvenv-test1Create-p作为虚拟环境包执行的python解释器对应的包环境,配置python新虚拟环境名为venv-test1。--copies表示新的虚拟环境是复制而不是链接源python解释器中的命令和包。--copies建议一定要带这个选项。workonworkon列出所有虚拟环境名称,功能同lsvirtualenvdeactivatedeactivate在虚拟环境中执行该命令可以退出当前虚拟环境lsvirtualenv列出所有虚拟环境名称rmvirtualenvrmvirtualenvvenv-test1deletevenv-test1虚拟环境cdvirtualenvcdvirtualenv在虚拟环境中必须执行该命令,可以直接进入其虚拟环境环境根目录cpvirtualenvcpvirtualenvvenv1venv2copyvirtualenv环境venv1为venv25。如何在python中安装.whl和.egg文件。egg文件为easy_install,是setuptools包对应的python工程文件压缩包标准。这是上一代。whl文件是pip对应的压缩包标准,用于替换egg。文件,两者现在都在使用中。Whl文件用的比较多。在python第三方库中,除了源代码和二进制exe,.whl文件和.egg文件也是常用的两种文件类型。.whl文件现在是常见的二进制格式,首先需要安装wheel库pipinstallwheel然后下载需要的.whl文件,最后使用pip命令安装到.whl文件所在位置,例如:pipinstallh:/path/xxx.whl.egg文件是一个包,后缀可以改成rar,直接解压,以源码形式安装,即:解压后cd到根目录。egg文件,执行pythonsetup.pyinstall#这就是所谓的源码安装。egg文件也可以通过easy_install命令安装,如下:(不过新版python3.X没有easy_install命令,所以不用再用这个命令了)easy_install/xx/xx.另一种最简单的安装egg的方法是将egg文件和egg文件解压出来的文件夹直接复制到Python第三方库文件夹..lib\site-packages6.python-m和python直接运行的区别python-m和直接运行python之间是这样的:>>>pythonxxx.py#直接运行>>>python-mxxx#相当于import,作为模块调用来启动,主要区别是sys.path是不同的是,直接运行会将脚本所在的目录添加到sys.path中,而作为模块启动会将当前运行命令的路径添加到sys.path中。在实际应用中,假设我们有如下文件结构:package1/|--__init__.py|--mod1.pypackage2/|--__init__.py|--run.pyimportsmod1.pyinrun.py#跑步。pyfrompackage1importmod1thenpythonrun.py#失败,提示找不到package1#切换到package2所在目录python-mpackage2.run#成功七、Python项目跨机迁移方案当然python虚拟环境只是隔离一个python项目依赖库最重要的方式之一,但是如果你想跨机器迁移一个python项目,我们推荐如下:编译安装同版本的python源码包或者一个目标机器上的类似版本。在源机python项目对应的虚拟环境中执行pipfreeze>requirements.txt生成依赖包文件requirements.txt在目标机生成一个新的python虚拟环境,然后导入生成的requirements.txt文件sourcemachine,执行pipinstall-rrequirements.txt需要注意的是,如果是在同一台机器上迁移或拷贝python项目,可选方案如下:(推荐方案1和方案3)使用cpvirtualenv或者直接copypython虚拟环境项目pipfreeze/install-r冻结并新建导入依赖库文件requirements.txt