为 Python 创建独立环境



我正在开发一个基于Python的工具,我需要为没有技术技能的用户分发这个工具。我分发该工具的方法是创建一个具有所有要求的安装程序,包括 python 可执行文件和库。

为此,我尝试创建一个虚拟环境(使用 pipenv 来创建它(,并使用我的代码复制了结果的工作目录。在某些情况下,安装程序之所以有效,是因为某些用户的机器上有 Python;对于没有 Python 的用户,需要一些依赖项,但依赖项来自完整的 Python 安装。

我已经尝试使用Cx_freeze,但它不适用于我的应用程序。有没有办法制作一个独立的 python 环境来与我的应用程序一起分发?

>https://www.pyinstaller.org/看起来像你想要的,它将生成可以在另一台机器上运行的python程序的.exe/二进制文件。但似乎这个项目并不完全支持(仅支持 python 最高 3.6,而 3.7 目前已上线(,因此如果它没有您需要的所有功能,您可能需要寻找其他地方。

我的解决方案是安装一个版本的python和所需的软件包。我的解决方案结构是:


-> Python
-> Program
-> run.bat

第一个 Python 目录是包含所有可执行文件和包的 python 环境。目录 Program 包含项目文件和运行.bat它们将环境设置为使用此本地安装。在目录 PythonScripts 内部有一个用于激活环境的存档。我的脚本代码是:

跑.bat

cls
@ECHO OFF
call %~dp0PythonScriptsactivate.bat
ECHO Starting Program....
%~dp0Pythonpython %~dp0ProgramDatastarter.py

激活.bat

@echo off
set "VIRTUAL_ENV=%~dp0Python"
if defined _OLD_VIRTUAL_PROMPT (
    set "PROMPT=%_OLD_VIRTUAL_PROMPT%"
) else (
    if not defined PROMPT (
        set "PROMPT=$P$G"
    )
    if not defined VIRTUAL_ENV_DISABLE_PROMPT (
        set "_OLD_VIRTUAL_PROMPT=%PROMPT%"
    )
)
if not defined VIRTUAL_ENV_DISABLE_PROMPT (
    set "PROMPT=(64bits) %PROMPT%"
)
REM Don't use () to avoid problems with them in %PATH%
if defined _OLD_VIRTUAL_PYTHONHOME goto ENDIFVHOME
    set "_OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME%"
:ENDIFVHOME
set PYTHONHOME=
REM if defined _OLD_VIRTUAL_PATH (
if not defined _OLD_VIRTUAL_PATH goto ENDIFVPATH1
    set "PATH=%_OLD_VIRTUAL_PATH%"
:ENDIFVPATH1
REM ) else (
if defined _OLD_VIRTUAL_PATH goto ENDIFVPATH2
    set "_OLD_VIRTUAL_PATH=%PATH%"
:ENDIFVPATH2
set "PATH=%VIRTUAL_ENV%;%PATH%"

此解决方案适用于我的两个应用程序(64 位和 32 位(安装。

相关内容

  • 没有找到相关文章

最新更新