web-dev-qa-db-fra.com

Pourquoi mon script Python échoue-t-il avec des erreurs de syntaxe?

Lors de l'exécution du simple programme Python ci-dessous, le message d'erreur suivant s'affiche:

./url_test.py: line 2: syntax error near unexpected token `('                  
./url_test.py: line 2: `response = urllib2.urlopen('http://python.org/')'

import urllib2      
response = urllib2.urlopen('http://python.org/')  
print "Response:", response

# Get the URL. This gets the real URL. 
print "The URL is: ", response.geturl()

# Getting the code
print "This gets the code: ", response.code

# Get the Headers. 
# This returns a dictionary-like object that describes the page fetched, 
# particularly the headers sent by the server
print "The Headers are: ", response.info()

# Get the date part of the header
print "The Date is: ", response.info()['date']

# Get the server part of the header
print "The Server is: ", response.info()['server']

# Get all data
html = response.read()
print "Get all data: ", html

# Get only the length
print "Get the length :", len(html)

# Showing that the file object is iterable
for line in response:
 print line.rstrip()

# Note that the rstrip strips the trailing newlines and carriage returns before
# printing the output.
2
Naive

Vous avez oublié d'ajouter Shebang au début du script pour indiquer au shell d'interpréter votre script en tant que script python. Quelque chose comme ça:

#!/usr/bin/python

ou:

#!/usr/bin/env python

Voir aussi: Pourquoi les gens écrivent-ils #!/Usr/bin/env python sur la première ligne d'un script Python?

6
Radu Rădeanu

Ces erreurs ne sont pas typiques Python tracebacks. Ces erreurs ressemblent à des erreurs de shell.

Je pense que vous essayez d’exécuter un script Python avec Bash (ou un autre shell), c’est-à-dire que vous faites quelque chose comme:

bash url_test.py

Au lieu de cela, vous devriez utiliser:

python url_test.py
7
Andrea Corbellini