我目前正在尝试cx_freeze
在我必须使用的 Solaris 工作站上工作,以便从我拥有的 Python 脚本制作可执行文件。问题是,我不是这台机器的管理员,并且cx_freeze
请求的安装写入站点包,这对我来说是只读的。
所以,很明显,我得到了这个错误:
creating /usr/local/lib/python2.6/site-packages/cx_Freeze
error: could not create '/usr/local/lib/python2.6/site-packages/cx_Freeze': Read-only file system
如果我尝试运行它,它会失败:
bash-3.00$ python /home/xxxx/cx_freeze-4.2.3/cxfreeze --target-dir cx_dist src/p_tool.py
Traceback (most recent call last):
File "/home/xxxx/cx_freeze-4.2.3/cxfreeze", line 5, in <module>
main()
File "/home/xxxx/cx_freeze-4.2.3/cx_Freeze/main.py", line 187, in main
silent = options.silent)
File "/home/xxxx/cx_freeze-4.2.3/cx_Freeze/freezer.py", line 91, in __init__
self._VerifyConfiguration()
File "/home/xxxx/cx_freeze-4.2.3/cx_Freeze/freezer.py", line 371, in _VerifyConfiguration
self._GetInitScriptFileName()
File "/home/xxxx/cx_freeze-4.2.3/cx_Freeze/freezer.py", line 283, in _GetInitScriptFileName
raise ConfigError("no initscript named %s", name)
cx_Freeze.freezer.ConfigError: no initscript named Console
显然,这与安装失败有关。所以,这是我的问题:
如果没有安装virtualenv
,我可以避免写入site-packages
,并cx_freeze
从我的主文件夹执行吗?
编辑我查看了 site.py 文档,PYTHONPATH
填充应该等同于使用site-packages
. 所以我的问题现在更像是:要添加到的路径是什么PYTHONPATH
,以便cx_freeze
可以从任何位置执行?
笔记:
- 我想避免处理
virtualenv
,因为我已经在努力理解可执行工具...... - 我看到了这个问题,但这仍然需要访问
site-packages
文件夹,而且它不是特定于用户的; - 我尝试将以下路径添加到 PYTHONPATH,但这不起作用
/home/xxxx/cx_freeze-4.2.3/build/lib.solaris-2.10-sun4v-2.6
: - 我也在尝试使用
PyInstaller
但有依赖问题(管理员并没有真正帮助我)。