n-a durat asa de mult razboiul. problema: importam neste EPF feeduri de la apple cu unealta lor. script python. nu exista suport mai deloc pe internets pentru EPF import și suntem numai trei în firma care mai mișcă în python. da slab. ăștia de la apple zic ca scriptul merge pe python 2.6 și mai sus. mie imi mergea de la linia de comanda și din cron pe dev. dar pe live nu mergea. testam din linia de comanda. una ca era feedul de importat corupt. am încercat și cu altul. am înaintat pana la piciorul broaștei. avem mai multe versiuni de python instalate. ma gândeam oare sa instalez exact 2.6.5 ca asta mergea la mine pe dev? da unu ca nu vreu eu sa instalez chestii pe live și doi m-am gandit ca sigur tre sa fie niste env vars și degeaba instalez eu în padurea de pythonuri deja existente unul anume ca tot n-am sa știu sa-l găsesc mai tarziu. daca tre sa meargă peste 2.6, atunci tre sa meargă! n-a mers din linia de comanda pana n-am specificat versiunea.
python2.6 EPFImporter.py /path/to/unpacked/feedapoi m-am relaxat eu și am pus cronul și-am plecat acasă. normal. a doua zi, cronul eșuat ca nu găsește MySQLdb. Cum naiba?! ca daca-i dau drumul găsește...
-bash$ python2.6
[..]
>>> import MySQLdb
>>>
nu mergea din cron. am googled si am gasit pe stackoverlow. bazat site-ul ala. env vars era. ca sa vaz diferența am listat env vars din cron pe live și din linia de comanda pe live. am pus asta în script:
import osa mers în sfârșit când am specificat calea absoluta la versiunea care trebuie. ca era o /usr/bin/python2.6 și o /usr/local/bin/python2.6 și command line folosea prima si cron folosea a doua. pff. ce-am găsit util:
import sys
for param in os.environ.keys():
print "%20s %s" % (param,os.environ[param])
sys.exit()
whereis pythonapoi din alea cu bin si python 2.6 trebuie ales ala care merge cu libraria de MySQLdb. pornit pythonul și executat importul:
python: /usr/bin/python2.6 /usr/bin/python2.4 /usr/bin/python /usr/lib/python2.6 /usr/lib/python2.4 /usr/local/bin/python2.7 /usr/local/bin/python3.2m-config /usr/local/bin/python3.2 /usr/local/bin/python2.6 /usr/local/bin/python2.7-config /usr/local/bin/python3.2m /usr/local/bin/python2.6-config /usr/local/bin/python3.2-config /usr/local/bin/python /usr/local/lib/python2.7 /usr/local/lib/python3.2 /usr/local/lib/python2.6 /usr/include/python2.6 /usr/include/python2.4 /usr/share/man/man1/python.1.gz
-bash$ /usr/bin/python2.6
[..]
>>> import MySQLdb
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named MySQLdb
>>>
-bash$ /usr/local/bin/python2.6și apoi scriptul trebuie executat cu pythonul care merge:
[..]
>>> import MySQLdb
>>>
/usr/local/bin/python2.6 EPFImporter.py /path/to/unpacked/feediha!
No comments:
Post a Comment