[英]How do I set environment variables in Pyinstaller?
我有以下 ps 代码来使用 myfile.spec 生成可执行文件:
python -O -m PyInstaller -v
[System.Environment]::SetEnvironmentVariable('USER', $arr[0])
[System.Environment]::SetEnvironmentVariable('PASSWD', $arr[1])
python -O -m PyInstaller myfile.spec --distpath ../dist --onefile -n myfile
myfile.spec 的内容:
added_files = [
('config.yaml', '.')
]
a = Analysis(['myfile.py'],
pathex=['myfile'],
datas=added_files,
hiddenimports = [
'pandas._libs.tslibs.np_datetime',
],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries,
a.zipfiles,
a.datas,
[],
name='myfile',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
runtime_tmpdir=None,
console=True )
我在 myfile.py 中做了一个print(os.environ)
并且 USER 和 PASSWD 的环境变量不存在。 在 python 文件使用的环境中设置这些变量的最佳方法是什么?
在您的 PC 中手动设置用户变量。
Go 通过在开始栏中搜索或转到settings-->system--about-->advanced system settings-->environment variables
到环境变量,然后在用户变量中添加一个具有所需值的新变量。
现在在您的代码中,您可以通过输入os.environ.get('VariableName')
来获取变量值
我通过使用运行时挂钩实现了这一点。 只需添加一个带有 .py 文件路径的--runtime-hook
选项。
文件说
--runtime-hook:自定义运行时挂钩文件的路径。 运行时挂钩是与可执行文件捆绑在一起的代码,在任何其他代码或模块之前执行以设置运行时环境的特殊功能。 此选项可以多次使用。
https://pyinstaller.org/en/stable/usage.html?highlight=runtime#cmdoption-runtime-hook
你可以使用这样的钩子文件
import os
os.environ["USER"] = <SOMETHING FROM A FILE>
os.environ["PASSWD"] = <SOMETHING FROM A FILE>
请记住,将密码保存在文件中是一种安全漏洞。 理想情况下,您的应用程序应该要求输入密码。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.