在制作Python应用时,每次安装环境十分麻烦,制作做一个Python整合包,把依赖都添加好
使用是直接复制,直接运行即可。
Python创建的虚拟环境不能移动,可嵌入式包又太多问题,
但Conda创建的Python却是可以移动的。
先安装miniconda
curl https://repo.anaconda.com/miniconda/Miniconda3-py311_24.11.1-0-Windows-x86_64.exe -o miniconda.exe
start /wait "" .\miniconda.exe /S /AddToPath=0 /NoRegistry=1 /Shortcuts=0 /D=安装路径
del miniconda.exe
配置pip源
setx MINICONDAPATH 安装路径 /M
set MINICONDAPATH=安装路径
%MINICONDAPATH%\python.exe -m pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
%MINICONDAPATH%\python.exe -m pip config set install.trusted-host pypi.tuna.tsinghua.edu.cn
%MINICONDAPATH%\python.exe -m pip install --upgrade pip
举例安装pytorch
%MINICONDAPATH%\python.exe -m pip install torch==2.3.1+cu118 torchvision==0.18.1+cu118 torchaudio==2.3.1+cu118 "numpy<2" -f https://mirrors.aliyun.com/pytorch-wheels/cu118
如果不使用PyQt5之类的可以使用conda创建虚拟环境创建整合包,如果使用PyQt5之类的,为防止路径中存在中文,导致程序启动失败,建议使用脚本在用户端安装到非中文路径。
以下命令创建一个虚拟环境,然后安装依赖,这个虚拟环境可以到处移动。
conda create --prefix=./python python=3.11
cmd通过下面方式设置环境变量,这里将python目录重命名为了python,PYTHONUNBUFFERED=1表示不使用stdio缓存打印
set PATH=%PATH%;%cd%\python
set PATH=%PATH%;%cd%\python\Scripts
set PYTHONUNBUFFERED=1
python代码通过以下方式设置环境变量
current_directory = os.getcwd()
os.environ['PATH'] = os.environ['PATH'] + ';' + os.path.join(current_directory, 'python')
os.environ['PATH'] = os.environ['PATH'] + ';' + os.path.join(current_directory, r'python\Scripts')
os.environ['PYTHONUNBUFFERED'] = '1'
使用Python整合包环境运行程序
python\python.exe main.py