Python环境安装、管理与部署

Python功能强大,上手容易,适合多种应用场景。安装合适的Python环境是开发的第一步。下面针对Windows系统和Linux系统分别介绍下如何进行安装、管理与部署。

一、Windows系统

1、基础环境管理

a、在线服务器(如开发环境、办公环境)

  如果目标安装服务器可以连接外部互联网,一般推荐使用conda来进行python的环境管理。

  1、首先建议下载包管理器Anaconda,这样可以针对不同的主题创建不同的environments,如机器学习环境,游戏环境、数据处理环境,这样不同的环境可以安装不同的包,进行隔离。Anaconda安装好后配置完环境如下图所示:

   2、下载IDE,如Pycharm。安装完成之后,创建项目,并指定项目的环境为对应的anaconda环境。

 如果没有conda环境,或者conda环境缺失新项目所需的某个包,可以直接创捷创建一个空的虚拟环境(仅包含python,pip等基础组件)

image

b、离线服务器(如生产环境)

生产环境中的Windows服务器为了信息和数据安全,一般会对网络进行隔离,无法连接互联网。下面是离线环境中安装的步骤:

  1、下载emded版本压缩包,如python-3.12.0-embed-amd64,拷贝至离线环境,然后解压缩即可;

  2、下载IDE,如Pycharm安装包,拷贝至离线环境,然后点击安装。

  3、新建项目,配置python interpreter,指定路径为压缩版本的python.exe

2、python包管理

Python环境安装好之后即可进行脚本的开发了,但是在实际项目开发过程中会经常需要使用某些外部包,如数据相关的pandas、numpy,web服务相关的flask、requests,数据库相关的oracledb、pymysql等。

此时需要手工安装包,若安装了anaconda,则可以首先找到对应的环境,在右上角搜索packages,直接进行安装。

如果该资源中找不到包,则打开相应环境的shell,用conda install package_name

image

conda的定位是通用的“环境与包管理平台”,支持python、R、C/C++、Java等多种语言。包的数量约为1500+,更专注于数据科学。

image

当找不到包时,可以再尝试使用pip install package_name进行安装(Pip是专用的python包管理器,拥有超过15万个包)。

image

如果仍然找不到,可以在Pycharm中,进入设置-->python解释器,点击+号,查找包进行安装

最后,如果还是找不到包,可以进入pypi.org网站在线下载wheel文件后进行安装,下载后执行命令:pip install wheel_name.whl(此时注意要选对平台和架构,如cryptography-41.0.4-pp310-pypy310_pp73-win_amd64.whl)

二、Linux环境

1、安装

1,基础环境

在小型项目中,功能相对比较单一,一般而言,使用Miniconda比较常见(Anaconda更加适合大型项目)。

  1. 下载miniconda包(如离线环境需先在联网机器上下载然后上传):如https://mirrors.tuna.tsinghua.edu.cn/anaconda/miniconda/Miniconda3-latest-Linux-x86_64.sh
  2. 执行安装命令:bash Miniconda3-latest-Linux-x86_64.sh -b -p $HOME/miniconda3
  3. 配置用户登录环境,将conda init脚本写入到bashrc文件:$HOME/miniconda3/bin/conda init bash #下次打开终端后直接进入conda base环境
  4. 启动conda环境:source $HOME/miniconda3/bin/activate # 出现 (base) 即成功
  5. conda config --set offline true # 关闭联网检查,避免超时
  6. 创建项目环境(选择python版本):conda create -n new_env_name python=3.10 
  7. 切换到项目环境 conda activate new_env_name

2,包

a, 在线环境

  直接pip install package1 package2 或者conda install package1 package2即可,后台会自动查找包的依赖,按照依赖的先后顺序进行安装。

b, 离线环境

  直接安装
  1. 直接去pypi.org下载whl文件(注意版本和平台的选择:如pandas-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl)。
  2. 安装whl文件:pip install ***.whl。如果安装时提示缺少依赖,需要查看报错提示并去下载依赖包的whl文件。
  3. 待所有的依赖包全部安装完成后,即可安装目标包。
  在线机器上整体下载再安装
  1. 找一台能联网的在线服务器,创建对应版本的conda虚拟环境,如conda create -n new_env_name python=3.11
  2. 创建下载目录并进入下载目录 mkdir /home/package_download_folder
  3. 下载目标包,后台会自动将依赖下载下来,如:pip download --only-binary=:all: cryptography -d . -i https://pypi.tuna.tsinghua.edu.cn/simple
  4. 将包文件夹打包整体拷贝至离线机器上,再解压
  5. 逐个安装解压后的whl文件,按照依赖顺序

2、环境发布部署

由于在离线环境中,安装包相对比较麻烦。因此在发布部署时,希望最大化的简化上述操作,做到一键发布。此时可根据具体的场景采取相应的部署方式。

方法一:目标机器先安装基础conda环境,再将源机器上某个项目环境发布至目标机器上

  1. 切换到源机器上需要导出的conda项目环境,在该环境中安装conda-pack包:conda install conda-pack-0.7.1-pyhd8ed1ab_0.conda
  2. 将环境打包并导出文件:conda pack -n proj_envir -o proj_envir.tar.gz
  3. 将包拷贝到目标服务器的某个目录中
  4. 在目标服务器上安装conda基础环境(将shell安装包拷贝至服务器并安装)
  5. 在目标服务器下的envs下面创建目录:mkdir -p ~/miniconda3/envs/proj_envir
  6. 将tar包解压到该目录中:tar -xzf proj_envir.tar.gz -C ~/miniconda3/envs/proj_envir
  7. 执行conda解压命令:~/miniconda3/envs/proj_envir/bin/conda-unpack
  8. 切换到新的环境:conda activate proj_envir

注意:conda的base环境直接导出然后导入可能会有潜在问题,建议先将源服务器的base环境复制一份到新的环境,然后将该环境打包导出,最后导入至目标服务器中。

方法二:直接将源机器上某个项目环境发布至目标机器上

  1. 与场景一一样,利用conda命令将某个环境导出至targ.gz文件,然后拷贝至目标服务器
  2. 解压至目标的某目录:tar -zxvf monitor_automation.tar.gz -C /usr/easyops/python/
  3. 激活python环境:source /usr/easyops/python/bin/activate
  4. 退出python环境:source /usr/easyops/python/bin/deactivate
注意:执行python脚本前,需要在当前环境变量中设置:export CRYPTOGRAPHY_OPENSSL_NO_LEGACY=1

方法三:直接将源机器上所有环境整体打包发布至目标机器上

  1. 直接进入miniconda根目录压缩打包(包含所有的conda环境):tar -czvf miniconda.tar.gz /root/miniconda
  2. 拷贝到目标机器上,并目标机器上解压:tar -xzvf miniconda.tar.gz -C miniconda_root_dir
  3. 激活conda环境:source miniconda_root_dir/bin/activate
  4. 切换项目环境:conda activate proj_envir
  5. 退出conda环境:conda deactivate
 其中,方法二、三两种部署方式,由于不需要执行shell安装脚本,对目标机器上其他应用影响较小,更适合快速部署上线。

附:基于Pycharm实现远程python调试

企业中Linux环境大多无图形端,而基于Pycharm的客户端图形端展示,方便调试功能。因此通常是在Pycharm中编写代码,再人工上传至Linux服务器。但是这种方案有一个缺陷,无法基于linux环境进行调试。更优的方法是配置本地Pycharm与远程环境打通,直接在本地编写代码,自动提交同步至远程服务器,然后直接调用远程python解释器进行调试运行。

具体配置方法可参考下面这篇文章:

IDE之pycharm:专业版本连接远程服务器代码,并配置远程python环境解释器(亲测OK)。-阿里云开发者社区

按照上述文章进行实际测试:

  1. 第一步先配置远程部署服务器项目路径,第二步配置远程编译器路径。但是实践中发现第二步配置远程编译器路径时无法选择第一步配置的远程服务器项目路径,还是得重新设置远程服务器项目路径,新生成了配置信息并在项目中进行使用。因此新项目中可直接进入项目编译器设置菜单,配置远程的编译器和项目路径。
  2. 尽管在选择远程SSH服务器解释器环境时可以选择【Conda环境】Tab页,并能自动检核远程conda可执行文件的路径,但是却无法创建(不知道是不是Pycharm的bug)。可行的方法是点击【系统解释器】Tab页,设置远程的python解释器文件路径,同时配置【同步文件夹】配置远程项目路径。

备注:该方案需要Pycharm professional版本,社区community版本无该功能。

posted @ 2025-07-11 21:44  大汪的数据之路  阅读(273)  评论(0)    收藏  举报