Sziasztok!
A mechanize modult akarom használni Python alatt (Ubuntu 12.04.1), de egy egysoros script, ami csak azt tartalmazza, hogy:
import mechanize
már ilyen hibát dob.
File "/usr/local/lib/python2.7/dist-packages/mechanize/_util.py", line 59, in
from calendar import timegm
ImportError: cannot import name timegm
Én értem, hogy a calendar.py-t keresi a sys.path -ban, és onnan próbálja a timegm függvényt betölteni. Viszont a sys.path-ban megvan az a dir is, ahol a calendar.py tartózkodik (/usr/lib/python2.7).
$ python
Python 2.7.3 (default, Aug 1 2012, 05:16:07)
[GCC 4.6.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> print sys.path
['', '/usr/lib/python2.7', '/usr/lib/python2.7/plat-linux2', '/usr/lib/python2.7/lib-tk', '/usr/lib/python2.7/lib-old', '/usr/lib/python2.7/lib-dynload', '/usr/local/lib/python2.7/dist-packages', '/usr/lib/python2.7/dist-packages']
Mi lehet a gond? Nem hiszem, hogy a mechanize a bűnös, mert szimplán kiadva a from calendar import timegm
parancsot is hibát okoz.
- 5311 megtekintés
Hozzászólások
Tedd fel a csomagot.
http://packages.ubuntu.com/precise/python-mechanize
sudo apt-get install python-mechanize
- A hozzászóláshoz be kell jelentkezni
Ez már megvolt, különben a mechanize dir sem létezne :)
/usr/local/lib/python2.7/dist-packages/mechanize/_util.py
- A hozzászóláshoz be kell jelentkezni
Ha /usr/local alatt van, akkor nem csomagbol lett felrakva.
--
|8]
- A hozzászóláshoz be kell jelentkezni
Igen, elnézést kérek. Legelőször csomagból raktam fel, de akkor is jött a timegm-es hiba. Leszedtem, és felraktam setup.py-vel. A hiba ugyanúgy megvan.
- A hozzászóláshoz be kell jelentkezni
A hibaüzenet szerint nem az a baj, hogy a calendar modult nem találja, hanem hogy az abban lévő timegm-et. Esetleg egy másik calendar modult talál a hivatalos helyett?
- A hozzászóláshoz be kell jelentkezni
Valami jól el van ott szúrva, nálam csont nélkül működik:
$ python -c "from calendar import timegm; print timegm"
<function timegm at 0xd0d488>
$ python -c "from calendar import timegm; import sys; from pprint import pprint; pprint(sys.modules)" | grep calendar
'calendar': <module 'calendar' from '/usr/lib/python2.7/calendar.pyc'>,
$ dpkg -S /usr/lib/python2.7/calendar.py
python2.7: /usr/lib/python2.7/calendar.py
$ grep "def timegm" /usr/lib/python2.7/calendar.py
def timegm(tuple):
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 12.04.1 LTS
Release: 12.04
Codename: precise
♲♻♲
- A hozzászóláshoz be kell jelentkezni
Közben kiderült. Ugyanabban a könyvtárban volt egy másik calendar.py... :( Szégyellem magam, és ezentúl külön dirbe rakok minden projektet.
- A hozzászóláshoz be kell jelentkezni
Az egy dolog. A másik meg, hogy ne használd a gyári modulneveket a saját fájljaidhoz.
- A hozzászóláshoz be kell jelentkezni
Az a vicces, hogy az a file egy (kezdő-)python tanfolyamon keletkezett. Úgy értem az oktató adta meg a feladatban milyen file névvel oldandó meg a feladat :)
- A hozzászóláshoz be kell jelentkezni
Majd a haladó tanfolyam jobb lesz :)
Egyébként pont a kezdő rész az, ami nagyon jól elsajátítható innét: http://docs.python.org/tutorial/
♲♻♲
- A hozzászóláshoz be kell jelentkezni