环境搭建:Python项目(开发和生产)
2026/9/15 8:38:52 网站建设 项目流程

目录

前言

一、MacOS 和 Linux 下的虚拟环境

1.1 创建和运行虚拟环境(生产环境)

1.1.1 root系统环境 和 conda环境

1.1.2 混用包管理

1.1.3 conda 生成环境

1.2 其他命令(开发环境)

1.3 项目传输

1.3.1 Linux -> MacOS 间传输项目

1.3.2 Linux -> Linux 间传输项目


前言

Python程序的生产环境配置和开发环境配置

一、MacOS 和 Linux 下的虚拟环境

python程序的虚拟环境被破坏 或者 不适配服务器的操作系统

1.1 创建和运行虚拟环境(生产环境)

1.1.1 root系统环境 和 conda环境

  • sudo 默认会重置 PATH
    这个机制叫secure_path,出于安全考虑,故意丢弃当前的 PATH,改用/etc/sudoers里写死的干净路径
# canda base 环境下 # 输出:/usr/bin/python3: No module named uvicorn —— sudo使得身份切换 root sudo sh restart.sh sh restart.sh # 查看base下 PATH which python3 sudo echo $PATH # 查看sudo下 PATH sudo which python3 sudo env | grep PATH

1.1.2 混用包管理

## conda create base 下 ##(base) ubuntu@Super-Server:/data/server/hc$ python3 -m venv venv (venv) (base) ubuntu@Super-Server:/data/server/hc$ pip install -r requirements.txt # 1. 进入项目目录 cd /path/to/your/project # 2. 创建虚拟环境(推荐命名为 .venv) python3 -m venv .venv # 3. 激活虚拟环境 source .venv/bin/activate # 4. 验证是否激活成功(终端前缀会出现 (.venv))—— # 预期输出应指向项目内的 .venv 目录 which python # 5. 退出虚拟环境 deactivate ################################################################################### ## 待实验 sudo python3 -m venv 系统自带的 Python 默认不包含 venv 模块 ## 安装包 sudo apt install python3-venv

在 (base) 下用 venv 和 pip

  • 路径污染:依然使用了 Conda base 的 Python 解释器(site-packages仓库),半隔离状态,两个环境依然会出现第三方库版本冲突的情况
  • 包管理冲突:venv 使用 pip 安装的包,conda不知道,conda更新或者安装新包时会覆盖pip安装的包

1.1.3 conda 生成环境

cd /data/server/hc conda create -n hc python=3.10 conda activate hc pip install -r requirements.txt conda deactivate ############################################################################ conda env create -f environment.yml # 其他方式

1.2 其他命令(开发环境)

确认当前正在使用的python

# 1. 查看当前默认的 Python3 版本 python3 --version # 2. 查看当前 python3 命令实际指向的文件路径 which python3 # 3. 终极排查:列出系统 $PATH 中所有名为 python3 的可执行文件及优先级 type -a python3 # 4. 询问 Python 解释器自身的绝对路径(最准确,不受别名干扰) python3 -c "import sys; print(sys.executable)"

包管理 pip 常用命令速查

# 安装包 pip install requests # 安装指定版本 pip install requests==2.28.0 # 使用国内镜像源(解决网络超时) pip install requests -i https://pypi.tuna.tsinghua.edu.cn/simple # 查看当前环境已安装的包 pip list # 导出当前环境的依赖清单 pip freeze > requirements.txt # 根据清单一键安装依赖 pip install -r requirements.txt # 卸载包 pip uninstall requests

多 Python 版本管理 (pyenv):在项目虚拟环境中独立python版本

# 使用 Homebrew 安装 brew install pyenv # 将 pyenv 初始化脚本写入 zsh 配置文件 echo 'eval "$(pyenv init -)"' >> ~/.zshrc source ~/.zshrc
# 查看可安装的 Python 版本列表 pyenv install --list # 安装指定版本(例如 3.11.6) pyenv install 3.11.6 # 查看本地已安装的版本 pyenv versions # 设置全局默认版本 pyenv global 3.11.6 # 【核心】为当前项目目录绑定特定版本 —— 执行后会在当前目录生成 .python-version 文件 cd /path/to/project # 单个环境 pyenv local 3.11.6 # 多个环境 pyenv virtualenv 3.11.6 my-project-env pyenv local my-project-env

二、不同系统间项目的传输

2.1 Linux -> MacOS 间传输项目

可执行文件不同

pip install # 输出:command not found: pip ls -la venv/bin/ # 输出:python 文件的权限是 -rw-r--r-- file venv/bin/python3 # 输出:ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux rm -rf venv python3 -m venv venv file venv/bin/python # 输出:Mach-O 64-bit executable arm64 pip install -r requirement.txt

2.2 Linux -> Linux 间传输项目

注意1:文件环境被破坏

  • 下载过程中缺失:activate 权限 缺少执行权限x,
  • 下载过程中被破坏:
    FTP工具传输,默认的 ASCll 文本模式在传输中,会自行检查文件并根据不同操作系统的换行表示方式进行修改。
    所以,Linux服务器之前传输文件,最好选择 Binary 模式。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询