为什么我的流浪脚本不能从Windows运行?

时间:2013-01-07 09:28:03

标签: python ubuntu vagrant

我有一个Vagrant设置,其中包含一个bash shell配置脚本,该脚本在Mac上调用时运行正常,但在从Windows主机调用时不起作用。有效的行是调用python脚本的第一行:

foreman run ./manage.py syncdb --noinput

给出的错误是找不到python:

/usr/bin/env python
: File not found

我原本以为这只是一个行结束问题(CRLF v LF),但我查了一下,行结尾是正确的。

如果我在框中SSH,并检查/ tmp / vagrant-shell(这是脚本作为安装的一部分被复制到的地方),它看起来很好。如果我在来宾VM上使用which python,我会得到virtualenv版本,这正是我所期望的。如果我检查env vars,PYTHONPATHPATH也已正确设置。

鉴于脚本被复制到VM然后从那里运行,很难理解从Windows或OSX主机运行它之间的差异(除了行结尾)。

感激不尽的任何帮助。

(VM是Ubuntu 12.04,32位)

[更新1]

我在provision.sh文件上运行了一个MD5哈希,分别位于四个地方:

  • git pull
  • 之后托管Windows计算机
  • 来宾VM,在Windows上运行,后置
  • 主机OSX计算机,在git pull
  • 之后
  • 来宾VM,在OSX上运行,后期提供

每个哈希都是相同的 - 即在OSX上运行的VM上的文件是有效的,是在Windows上运行在VM上的同一文件的字节匹配。

因此,它在设置时就隐含在虚拟机上。但鉴于机器在两者上使用相同的VirtualBox VM进行设置 - 也许这是VirtualBox实现问题?

[更新2:解决方法]

./manage.py替换为完整的python manage.py我已经让脚本工作了,这表明这是一个路径问题,但是我没有耐心去深入挖掘。它有效,现在可以做到。

0 个答案:

没有答案