Pyinstaller with Django on Windows - "environment can only contain strings"



我正在编写一个脚本,它是围绕我的django设置的manage.py runserver实用程序的一个简单的gui包装器。我已经能够在OSX上用PyInstaller将整个东西打包在一起了;然而,当在Windows上创建相关的可执行文件时,我会得到以下错误:

TypeError: environment can only contain strings

在深入研究了PyInstaller为解决这个bug而调用的一些实用程序之后,我发现有两个环境变量被设置为unicode字符串:DJANGO_SETTINGS_MODULEPYTHONPATH环境变量。

我可以修改其中一个PyInstaller脚本,尝试在这些变量到达引发错误的底层Popen之前对其进行重新编码;然而,这似乎并不是很容易移植。

这是以前有人遇到过的问题吗?是否有spec设置或其他类似的设置需要我更改?

谢谢!

编辑

我曾尝试将任何环境变量编码为"ascii",但它们最终仍被设置为unicode字符串。示例:

os.environ.setdefault("DJANGO_SETTINGS_MODULE".encode("ascii", "ignore"), "DataSite.settings".encode("ascii", "ignore"))

我是不是错过了什么?

我找到了这个问题的答案;事实证明,当我运行它时,我正在将unicode字符串传递到各种path变量的PyInstaller方法中,而这些unicode字符串最终毒害了它们作为环境变量存储的位置。用str()函数包围他们解决了这个问题

相关内容

最新更新