我应该把shebang放在我的Python脚本中吗?以什么形式?
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
要么
#!/usr/local/bin/python
Run Code Online (Sandbox Code Playgroud)
这些同样便携吗?哪种形式最常用?
Python不会在git bash(Windows)中运行.当我在命令行中键入python时,它将我带到一个空白行,而不是说它已经像在Powershell中那样输入了python 2.7.10.它没有给我一个错误消息,但python只是不运行.
我已经确定了PATH中的环境变量c:\python27.我还能检查什么?
发生此问题的会话如下所示:
user@hostname MINGW64 ~
$ type python
python is /c/Python27/python
user@hostname MINGW64 ~
$ python
Run Code Online (Sandbox Code Playgroud)
......坐在那里而不回到提示.
我最近在Windows上使用过Cygwin.我想使用Python的Windows安装,所以在测试期间我使用/cygdrive/c/Python26/python.exe myfile.py而不是python myfile.exe.
除打印外,这几乎完美.当我从Cygwin运行Windows Python时,输出在执行完成之前不会打印.它可以在explorer.exe或cmd.exe的Windows Python中正常运行,并且可以使用Cygwin安装的Python(/bin/python.exe)在Cygwin中运行.
这有解决方法吗?重要的是能够运行Windows版本,但我想用Bash完成所有操作.
我在Windows 7上安装了Python 2.6和Python 3并设置了环境变量:path = d:\python2.6.
当我python在cmd中运行时,它显示的是python版本是2.6,这是正确的!
但是当我在bat文件中编写脚本并运行它时,显示的python版本为3.1.
这有什么不对?
bat文件中的脚本代码:
import sys
print (sys.version)
Run Code Online (Sandbox Code Playgroud) 当一个python脚本应该从pyenv virtualenv文件的正确shebang 运行?
作为示例测试用例,我的系统(OSX)上的默认python尚未pandas安装.pyenv virtualenv venv_name确实如此.我尝试从virtualenv获取python可执行文件的路径.
$ pyenv activate venv_name
(venv_name)$ which python
/Users/username/.pyenv/shims/python
Run Code Online (Sandbox Code Playgroud)
所以我举了我的榜样script.py:
#!/Users/username/.pyenv/shims/python
import pandas as pd
print 'success'
Run Code Online (Sandbox Code Playgroud)
但是当我尝试运行脚本时,我收到了一个错误:
(venv_name) $ ./script.py
./script.py: line 2: import: command not found
./script.py: line 3: print: command not found
Run Code Online (Sandbox Code Playgroud)
虽然在命令行上运行该路径工作正常:
(venv_name) $ /Users/username/.pyenv/shims/python script.py
success
(venv_name) $ python script.py # also works
success
Run Code Online (Sandbox Code Playgroud)
什么是适当的shebang为此?理想情况下,我想要一些通用的东西,以便它指向我目前的venv所在的python.
python ×5
windows ×3
command-line ×1
cygwin ×1
git ×1
git-bash ×1
pyenv ×1
python-2.7 ×1
python-3.x ×1
shebang ×1
shell ×1