我正在编写一个脚本,该脚本是django设置的manage.py runserver
实用程序周围的简单gui包装程序。我已经能够在OSX上将整个程序与PyInstaller打包在一起;但是,在Windows上创建相关的可执行文件时,出现以下错误:
TypeError: environment can only contain strings
研究了PyInstaller调用的一些实用程序以解决此错误之后,我发现已将两个环境变量设置为unicode字符串:DJANGO_SETTINGS_MODULE
和PYTHONPATH
环境变量。
我可以可行地修改其中一个PyInstaller脚本,以尝试对这些变量进行重新编码,然后再将它们击中引发错误的基础Popen
;但是,这似乎不是很容易移植。
这是任何人之前遇到的问题吗?是否有我应该更改的spec
设置或其他类似的东西?
谢谢!
修改
我尝试将任何环境变量编码为“ ascii”,但最终仍将其设置为unicode字符串。示例:
os.environ.setdefault("DJANGO_SETTINGS_MODULE".encode("ascii", "ignore"), "DataSite.settings".encode("ascii", "ignore"))
我想念什么吗?
答案 0 :(得分:0)
我找到了这个问题的答案;事实证明,我在运行时将unicode字符串传递给各种path
变量的PyInstaller方法中,这些unicode字符串最终使井中毒,直到它们被存储为环境变量为止。用str()
函数包围它们可以解决该问题。