2011-03-17 29 views
6

Linux kutusunda python 2.7 yüklü var ve crontab aracılığıyla bir python betiği programlamaya çalışıyorum.Sorun Giderme python'u crontab'dan - "geçersiz Python yüklemesi"

Traceback (most recent call last): 
    File "/usr/local/lib/python2.7/site.py", line 553, in <module> 
    main() 
    File "/usr/local/lib/python2.7/site.py", line 535, in main 
    known_paths = addusersitepackages(known_paths) 
    File "/usr/local/lib/python2.7/site.py", line 268, in addusersitepackages 
    user_site = getusersitepackages() 
    File "/usr/local/lib/python2.7/site.py", line 243, in getusersitepackages 
    user_base = getuserbase() # this will also set USER_BASE 
    File "/usr/local/lib/python2.7/site.py", line 233, in getuserbase 
    USER_BASE = get_config_var('userbase') 
    File "/usr/local/lib/python2.7/sysconfig.py", line 535, in get_config_var 
    return get_config_vars().get(name) 
    File "/usr/local/lib/python2.7/sysconfig.py", line 434, in get_config_vars 
    _init_posix(_CONFIG_VARS) 
    File "/usr/local/lib/python2.7/sysconfig.py", line 298, in _init_posix 
    raise IOError(msg) 
IOError: invalid Python installation: unable to open /usr/include/python2.7/pyconfig.h (No such file or directory) 

Ben /usr/include/python2.7 does't var olduğunu görüyorum ama /usr/local/include/python2.7/ yapar: komut alıyorum cron üzerinden çalışan ancak ne zaman komut satırından çalışıyor. Python'u kurarken hata yaptım mı?

+0

Hangi Linux dağıtımı? –

+0

@Sridhar - Ubuntu – ripper234

+0

Bu doğrudan sorunuzu yanıtlamıyor, ancak ActivePython 2.7'yi denediniz mi - hangi /opt/ActivePython-2.7'ye yüklüyor? –

cevap

2

İçerikleri ve üstbilgileri yükleyen python2.7-dev gerekir.

Ubuntu için, yüklemek için sudo apt-get install python2.7-dev'u çalıştırın. Hangi Linux dağıtımı yapıyorsunuz?

+1

Ancak Python, kabuktan harika çalışıyor ... Crontab'dan çalıştırmanın başka bir şey yüklemesini gerektirmesi mantıklı değil. – ripper234

+0

'/ usr/include/python2.7/pyconfig.h' bir C++ başlık dosyasıdır. 'python2.7-dev', 'crontab' işinizin yaptığı şey olan Python'un C++ kütüphanelerini kullanarak bir şeyler derlemeniz için gereken başlık dosyalarını ve diğer şeyleri yükler. – Blender

+0

olası değil; "ithalat sitesi" Python başlangıçta gerçekleşir. Ve burada, Ubuntu'nun Python'undaki sysconfig modülü ile garip bir şeyler oluyor./usr/local'ın Python/usr/'s include/dirs okuyor ... bu doğru değil. –

3

Muhtemelen 2 sürümü yüklü, bunlardan biri bozuk. cron sadece doğrudan muhtemelen içeren senin PATH yerine belirli bir yolun python, arıyorsa /usr/bin (tipik) /usr/local/bin önce - böylece cron içinde, kullanmak veya /usr/bin/python mevcut /usr/bin bir tane ve sembolik /path/to/good/python kaldırmak için hangi piton belirtmek .

Düzenleme: sadece yeniden oku ve komut satırından düzgün çalıştığını gördüm. python-dev muhtemelen gitmek için yoldur. Afedersiniz!

+0

'$ PATH', sistemin ikili dosyaları nerede aradığını tanımlar, ancak 'python' başlıklarının konumlarını ikili yürütülebilir dosya aracılığıyla verebiliyor mu emin değilim ... – Blender

+0

Bu benim yanlış okumaların bir parçasıydı. Onun cron muhtemelen yanlış python binary kullanıyordu çünkü yanlış olan "$ PATH" içinde ilk sıradaydı. Komut satırında çalıştığını görmek, geçersiz yaptı. :) – mway

2

Crontab dosyanızda, yürütülebilir yürütülebilir dosyalara sahip olmanın yanı sıra, yalnızca python yürütülebilir dosyasının tam yolunu verdiğinizi kabul ediyorum. Eğer değilse, lütfen crontab dosyasındaki tam yol python2.7'yi belirtin ve aynı zamanda bu problemi elde edemediğinizden emin olmak için komut satırında aynı tam yolu kullanın. Eğer bunu komut satırında da alıyorsanız, o zaman muhtemelen bazı geliştirme başlıklarını eksik. (Setup.py derlemesini kullanmak ve crontab ile yapmaya çalışmak gibi bir şeyi derlemeye mi çalışıyorsunuz?) Bu başlıkların nereye ihtiyaç duyduğunu anlamaya çalışıyorum. Bu nedenle, yukarıdaki öneriden başka, sondan gelen ek bilgiler daha fazla yardımcı olabilir.

İlgili konular