惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 大汪的数据之路

数据码农马年大吉 字符串分割并展开成表格的SQL实现方法 BI报表及可视化分析类工具使用经验总结(下) BI报表及可视化分析类工具使用经验总结(上) 基于Python实现自动化微信通知和预警 Chat2DB测试体验 常用数据管理工具与平台汇总 OneID系统建设实践总结 网易有数BI使用总结 网易NDH大数据平台使用经验 版本管理总结 程序自动化vs人工手动处理 SQL开发总结 数据平台使用经验 数据团队运维值班任务简介 windows获取kerberos认证 SQL动态长度行列转置 ODI Scenario 场景 Oracle KEEP 分析函数
Python环境安装、管理与部署
大汪的数据之路 · 2025-07-11 · via 博客园 - 大汪的数据之路

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

一、Windows环境

1、conda环境管理

a、在线环境

  如果需要安装的服务器可以连接互联网,那么可以直接下载安装包进行安装。

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

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

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

image

b、离线环境

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

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

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

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

2、包管理

Python环境安装好之后即可进行脚本的开发了,但是在开发过程中会经常发现少了某个包。此时需要手工安装缺失的包。若安装了anaconda,则可以首先找到对应的环境,在右上角搜索packages,进行安装。

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

image

但是conda可安装的资源较少,常常会找不到

image

此时可以尝试使用pip install package_name进行安装

image

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

最后,如果还是找不到包,可以进入pypi.org网站在线下载wheel文件后进行安装,下载后执行命令:pip install wheel_name.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 package_name即可,后台会自动查找包的依赖,按照依赖的先后顺序进行安装。

b, 离线环境

  直接安装
  1. 根据项目需要下载相应的python模块,通常去pypi.org下载对用python版本的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版本无该功能。