我通常在我的Python脚本中使用以下shebang声明:
#!/usr/bin/python
Run Code Online (Sandbox Code Playgroud)
最近,我遇到了这个shebang声明:
#!/usr/bin/env python
Run Code Online (Sandbox Code Playgroud)
在脚本文档中,注意到使用此表单"更具可移植性".
这个声明是什么意思?为什么路径中间有空间?它实际上是否有助于稳定性?
谷歌有一个Python教程,他们将样板代码描述为"不幸",并提供了这个例子:
#!/usr/bin/python
# import modules used here -- sys is a very standard one
import sys
# Gather our code in a main() function
def main():
print 'Hello there', sys.argv[1]
# Command line args are in sys.argv[1], sys.argv[2] ..
# sys.argv[0] is the script name itself and can be ignored
# Standard boilerplate to call the main() function to begin
# the program.
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
现在,我听说样板代码被描述为"看似重复的代码,一次又一次地出现以获得一些似乎应该更简单的结果"(例子).
无论如何,在Python中,上面例子中被认为是"样板"代码的部分是:
if __name__ == '__main__':
main()
Run Code Online (Sandbox Code Playgroud)
现在,我的问题如下:
1)Python中的样板代码(如提供的示例)是否与我提供的定义具有相同的定义?如果是这样,为什么?
2)这个代码甚至是必要的吗?在我看来,代码运行是否有主要方法.是什么让这个代码变得更好?它更好吗? …
内核如何获得在linux下运行的可执行二进制文件?
这似乎是一个简单的问题,但任何人都可以帮助我深入挖掘?如何将文件加载到内存以及如何启动执行代码?
任何人都可以帮助我,一步一步地告诉我们发生了什么吗?
我正在部署一个用Java编写的命令行工具,它接受命令行参数.我把它打包成一个JAR文件,因为它有一个单个文件很方便.
问题是要运行它,你必须先打电话java -jar (filename) (args),这是非常烦人的.
我目前的方式是有一个简单的bash脚本启动它,但这不太理想.
无论如何(在Linux,Ubuntu Server中)是否要生成一个自己调用Java VM的JAR文件?我找了一个shebang,但找不到一个(当然这是有道理的,因为它是编译代码).
这就是我想要做的:myprogram.jar arg1 -arg2而不是这个:java -jar myprogram.jar arg1 -arg2
谢谢,
Brian
我正在尝试使用此Python urllib2 Basic Auth Problem代码来从需要身份验证的URL下载网页内容.我正在尝试的代码是:
import urllib2, base64
request = urllib2.Request("http://api.foursquare.com/v1/user")
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
Run Code Online (Sandbox Code Playgroud)
它告诉我:
./xx.py: line 1: import: command not found
./xx.py: line 3: syntax error near unexpected token `('
./xx.py: line 3: `request = urllib2.Request("http://api.foursquare.com/v1/user")'
Run Code Online (Sandbox Code Playgroud)
我想知道我做错了什么?我在用Python 2.7.5.如何从需要身份验证的URL下载文件内容?
可能重复:
为什么人们在Python脚本的第一行写#!/ usr/bin/env python?
"#!/ bin/sh"行在UNIX shell脚本中的含义是什么?
这是一个评论,应该被解释者忽略.为什么#!/ usr/bin/python几乎仍然在每个程序中?
我可以在Haskell中做这样的事情:
#!/usr/bin/runghc
main=putStrLn "Hello World"
Run Code Online (Sandbox Code Playgroud)
然后我可以运行它 ./hello.hs
我的问题是,为什么忽略第一行?haskell中的注释开头,--但第一行似乎仍然被忽略.它甚至加载到ghci.这个技巧也适用于Python和Perl.
但是当我在Java中做类似的事情:
#!/usr/local/jdk1.6.0_13/bin/javac
...
Run Code Online (Sandbox Code Playgroud)
Javac给了我一个编译器错误.
那么这是如何工作的呢?我将如何使用Java?
谢谢.
我试图在Ubuntu上为我的Emacs配置Python,我收到以下错误:
/usr/bin/env: python2: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有人可以帮我吗?我该怎么做才能解决它?
来自下载代码的某些源文件具有以下标头
# -*- coding: utf-8 -*-
Run Code Online (Sandbox Code Playgroud)
我知道utf-8编码是什么,但为什么它需要作为python源文件中的头?
我默认使用ubuntu 10.04和python2.6.我安装了python2.7.
当我想安装python包时
apt-get python-<package>
Run Code Online (Sandbox Code Playgroud)
它被安装到python2.6.如何才能将软件包安装到python2.7?有什么选择吗?
我看过这个,但我在操作系统中找不到这样的目录.我考虑过使用easy_install-2.7,但不支持所有软件包.例如python-torctl.
我更感兴趣的是绑定python2.7 apt-get install.
python ×7
linux ×5
command-line ×2
shebang ×2
ubuntu ×2
boilerplate ×1
c ×1
installation ×1
java ×1
portability ×1
url ×1
utf-8 ×1