我正在尝试使用 testing.postgresql 包来测试一些脚本,并在实例化 testing.postgresql.Postgresql() 或 testing.postgresql.PostgresqlFactory() 时遇到此错误:
File "<stdin>", line 1, in <module>
File "C:\Python27\lib\site-packages\testing\common\database.py", line 83, in __init__
self.initialize()
File "C:\Python27\lib\site-packages\testing\postgresql.py", line 50, in initialize
self.initdb = find_program('initdb', ['bin'])
File "C:\Python27\lib\site-packages\testing\postgresql.py", line 134, in find_program
path = get_path_of(name)
File "C:\Python27\lib\site-packages\testing\common\database.py", line 288, in get_path_of
stderr=subprocess.PIPE).communicate()[0]
File "C:\Python27\lib\subprocess.py", line 710, in __init__
errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 960, in _execute_child
startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
通过跟踪跟踪和在线搜索,我可以找到 subprocess.py 无法找到 initdb.exe。究竟为什么 subprocess.py 移交给扩展模块 _subprocess.c 会变得更加模糊。
我已经尝试将包含 initdb 的目录添加到系统 PATH 中,没有骰子。
有没有其他人遇到过这个问题,或者对这里发生的事情有任何见解?