我的cython
/ pyximport
代码在读/写文件系统上运行良好。
但是(出于测试目的),我需要在只读文件系统上进行尝试。
如何更改cython / pyximport临时目录? (它在哪里完成工作?即即时编译?)
如何将此“工作目录”设置为当前目录以外的其他位置,例如/tmp/
(不是ro
,而是rw
)?
回溯:
!! File "/usr/lib/python2.7/site-packages/Cython/Distutils/build_ext.py", line 301, in cython_sources
self.mkpath(os.path.dirname(target))
!! File "/usr/lib/python2.7/distutils/cmd.py", line 352, in mkpath
dir_util.mkpath(name, mode, dry_run=self.dry_run)
!! File "/usr/lib/python2.7/distutils/dir_util.py", line 76, in mkpath
"could not create '%s': %s" % (head, exc.args[-1]))
!! ImportError: Building module samplerbox_audio failed: ["DistutilsFileError: could not create '/root/.pyxbld': Read-only file system\n"]
答案 0 :(得分:14)
来自help(pyximport.install)
默认情况下,已编译的模块最终会以
.pyxbld
结尾 用户主目录中的目录。传递不同的道路 因为build_dir
会覆盖此内容。
因此,当您致电build_dir
以使其使用您的读/写系统时,请将pyximport.install
作为参数传递。