在 Python 本地安装模块到脚本

Install modules in Python locally to script

我有以下问题: 我必须在 Windows 系统上 运行 一些 test/diagnostic Python 脚本。由于明确要求,系统没有默认的系统范围 Python 实例,但安装了两个不同的 Python 实例,供系统上的应用程序本地使用 运行ning。但是,这两个实例都缺少我的脚本使用的一些基本模块(如日志记录、urllib、configparser 等)。

我想 运行 %PYTHONPATH%\python.exe myscript.py 其中 %PYTHONPATH% 指向已安装的 Python 实例之一,但在“某处”安装所需的附加模块 outside %PYTHONPATH%(最好在安装我的脚本的同一目录中)以便我的脚本可以使用它们。

由于我的脚本是一个测试工具,它不应该修改OS或安装的软件,所以%PYTHONPATH%下的Python安装不应该以任何方式改变。

还希望安装可以完全自动化,即。最好的安装方法是将模块与我的脚本放在同一个 .zip 文件中,然后解压到目标路径。

同样重要的是系统没有上网,所以我不得不在另一台机器上下载所需的文件并将它们复制到目标系统。

你能指导我怎么做吗?

我认为您正在寻找的是 python 虚拟环境。 (需要互联网)

检查: https://docs.python.org/fr/3/library/venv.html

然后对于安装,您可以创建一个包含所有依赖项的 .exe 文件。 (不需要互联网)

检查: https://www.pyinstaller.org/

我自己找到了答案——很简单:

  1. 从适当的 Python 版本分发中获取包含标准模块的 zip 文件(在我的例子中是文件 python38.zip,它位于可从 Python 下载的主 zip 文件中网站)
  2. 将此文件的内容解压到 c:\mydir\Python38\site-packages,其中 c:\mydir 是包含我的脚本的目录
  3. 在运行我的脚本
  4. 之前设置环境变量PYTHONUSERBASE=c:\mydir

现在我可以 运行 脚本,它会在 c:\mydir\Python38\site-packages.

中找到所有“丢失的”标准模块