我有一个流浪设置,其中包括一个bashshellprovisioning脚本,它在Mac上调用时运行良好,但在Windows主机上调用时不起作用。工作的行是调用python脚本的第一行:
foreman run ./manage.py syncdb --noinput
给出的错误是找不到python:
^{pr2}$我最初以为这只是一个行尾问题(CRLF v LF),但我检查了一下,行结束是正确的。在
如果我用SSH连接到这个框中,并选中/tmp/vagrant shell(在安装过程中,脚本将被复制到其中),那么看起来很好。如果我在来宾虚拟机上使用which python
,我就得到了virtualenv版本,这正是我所期望的。如果我检查环境变量,PYTHONPATH
和{
考虑到脚本被复制到虚拟机,然后从那里运行,很难理解从Windows或OSX主机运行的脚本之间有什么区别(除了行结束)。在
感谢您的帮助。在
(VM是ubuntu12.04,32位)
[更新1]
我对provision.sh
文件运行了一个MD5哈希,在四个不同的位置:
git pull
之后git pull
之后而且哈希值对于每一个都是相同的-也就是说,运行在OSX上的虚拟机上的文件,是运行在Windows上的虚拟机上的同一个文件的字节匹配。在
因此,它是虚拟机设置时隐含的内容。但是考虑到这台机器都是使用相同的VirtualBox虚拟机来设置的-也许这是一个VirtualBox实现问题?在
[更新2:解决方法]
通过将./manage.py
替换为完整的python manage.py
我就可以让脚本正常工作了,这表明这是一个路径问题,但是我没有耐心去进一步挖掘。它起作用了,现在就可以了。在
目前没有回答
相关问题 更多 >
编程相关推荐