为什么我的流浪脚本没有从Windows上运行?

2024-09-26 22:50:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个流浪设置,其中包括一个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哈希,在四个不同的位置:

  • 主机Windows计算机,在git pull之后
  • 来宾虚拟机,在windows上运行,后配置
  • 主机OSX计算机,在git pull之后
  • 来宾虚拟机,在OSX上运行,后配置

而且哈希值对于每一个都是相同的-也就是说,运行在OSX上的虚拟机上的文件,是运行在Windows上的虚拟机上的同一个文件的字节匹配。在

因此,它是虚拟机设置时隐含的内容。但是考虑到这台机器都是使用相同的VirtualBox虚拟机来设置的-也许这是一个VirtualBox实现问题?在

[更新2:解决方法]

通过将./manage.py替换为完整的python manage.py我就可以让脚本正常工作了,这表明这是一个路径问题,但是我没有耐心去进一步挖掘。它起作用了,现在就可以了。在


Tags: 文件pygit脚本managewindowsmac计算机

热门问题