私はこれを使用しようとしています Python urllib2 Basic Auth Problem 認証を必要とするURLからWebページコンテンツをダウンロードするためのコードのビット。私が試しているコードは次のとおりです。
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)
それは私を見せています:
./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")'
何が間違っているのだろうか?使っています Python 2.7.5
。認証が必要なURLからファイルコンテンツをダウンロードするにはどうすればよいですか?
最初のステップでの認証に関連する問題ではありません。 import
が機能していません。だから、最初の行にこれを書いてみてください:
#!/usr/bin/python
を使用して実行されている時間
python xx.py
あなたのためにここに一つの説明があります:
>>> abc = "Hei Buddy"
>>> print "%s" %abc
Hei Buddy
>>>
>>> print "%s" %xyz
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
print "%s" %xyz
NameError: name 'xyz' is not defined
最初に、abc変数を初期化し、正常に動作します。一方、xyzは初期化されていないため機能しません!
LinuxなどのUNIXベースのOSを使用していますか?その場合、スクリプトの一番上にShebang行を追加します。
#!/usr/bin/python
その下に残りのコード(xx.py
あなたの場合)既に持っていること。次に、ターミナルで同じコマンドを実行します。
$ python xx.py
これは、これをPythonコードとして解釈しているため、正常に動作します。ただし、ターミナルから実行する場合、python
がここでそれを解釈する方法を指示するので問題ありません。 doは、ターミナルの外で実行します。つまり、ファイルブラウザから実行します。
最初のインポートで「import:command not found」と表示される場合、パーサーがpyファイルに一致する文字エンコードを使用していないことが原因です。特に、pyファイルでASCII encodingを使用していない場合。
それを正しくする方法は、pyファイルの上に正しいエンコーディングを指定して、ファイルの文字エンコーディングに一致させることです。
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
私は同じ問題を経験しましたが、今この問題の解決策を見つけました。
#!/usr/bin/python
import sys
import os
os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))
これは私の場合のコード[1]です。このスクリプトを試したときに、次のようなエラーメッセージが表示されました。
import:コマンドが見つかりません
私は人々がシバンについて話しているのを見つけました。ご覧のとおり、上記のコードpythonにShebangがあります。これらのトライアルを試してみましたが、良い解決策は見つかりませんでした。
私はついに自分のシェバンをタイプしようとしました。
#!/usr/bin/python
コピーしたものを削除しました。
そして、私の問題は解決しました!!!
インターネットからコードをコピーしました[1]。
そして、私は、元のコピーされたシバン文にいくつかの見えない(?)見えない特殊文字があったと思います。
私はvimを使用していますが、時々同様の問題が発生します。特にインターネットからコードスニペットをコピーすると、この種の問題が発生します。Webページにはウイルスの特殊文字が含まれています!!私は疑う。 :-)
トレッカー
PS)Windows 7のコード(ホストOS)をWindowsクリップボードにコピーし、Ubuntuのvim(ゲストOS)に貼り付けました。 VMはOracle Virtual Machineです。
[1] http://nathanhoad.net/how-to-meld-for-git-diffs-in-ubuntu-hardy
./xx.py
などのスクリプトを直接実行し、スクリプトの最上部に#!/usr/bin/env python
などのシバンがない場合、シェルはシェルスクリプトとして実行できます。 POSIXによる :
POSIX.1-2008のSystem Interfacesボリュームで定義されている[ENOEXEC]エラーと同等のエラーが原因でexecl()関数が失敗した場合、シェルは、検索の結果のパス名でシェルを呼び出すのと同等のコマンドを実行します最初のオペランドとして、残りの引数は新しいシェルに渡されますが、新しいシェルの「$ 0」の値がコマンド名に設定される場合があります。実行可能ファイルがテキストファイルでない場合、シェルはこのコマンドの実行をバイパスできます。この場合、エラーメッセージを書き込み、126の終了ステータスを返します。
注:テキストファイルにShebangがない場合、ENOEXEC
が表示される場合があります。
Shebangがないと、シェルはPythonスクリプトをエラーにつながるシェルスクリプトとして実行しようとします:import: command not found
。
また、スクリプトをpython xx.py
として実行する場合、Shebangは必要ありません。実行可能にする必要さえありません(+x
)。この場合、スクリプトはpython
によって解釈されます。
Windowsでは、 pylauncherがインストールされている でない限り、Shebangは使用されません。 Python 3.3 + に含まれています。