Pencerelerden Ahududu python betiği geliştirme


10

Birkaç nedenden dolayı Windows tarafından bir Ahududu python betiği geliştirmek istiyorum: RPi kızartmak / başka bir projeyi denemek / Pi'yi yeniden yüklemek için tüm kodu (daha fazla) bilgisayarımda güvenli tutmak istiyorum. Ayrıca iki ekranlı ana bilgisayarım pencerelerde ve SSH üzerinden vim (macun ile) kullanmanın bunu yapmanın iyi bir yolu olmadığını düşünüyorum (kişisel görüş, ancak ergonomik bulmuyorum).

Bunu buldum: http://visualgdb.com/tutorials/raspberry/ bu bana Ahududu için bir C + uygulaması geliştirmeme, uzaktan derlemem vb.

Python komut dosyası geliştirme için eşdeğer bir şey var mı?

Hangi temelde bana izin verecek:

  1. Penceremde python geliştirmek için
  2. "Çalıştır" düğmesine basmak ve script (ler) i RPi'ye dağıtmak ve başlatmak için
  3. (Rüya çözümü) Kesme noktaları koymak ve hata ayıklamak için?

Git, Mercurial veya SVN gibi bir CM sistemi kullanmayı düşünebilirsiniz. Şahsen mercurial'ı tercih ediyorum ve onunla değişiklikleri Windows makinenizden itebilir ve ahududu pi'ye çekebilirsiniz.
James Mertz

Şu anda bir
Git'im

Bu yüzden neden bu bir yorum değil, bir cevap;)
James Mertz

Yeterince adil :) Üzgünüm
J4N

Yanıtlar:


4

PyCharm'a göz atın . Yıllardır mutlu bir ödeme yapan müşteriyim, ancak ücretsiz bir topluluk sürümü de mevcut.

Bir yoktur dosya gözlemcisi eklentisi uzak makinedeki (RPI) için üzerinden dosya kopyalar. Ve uzaktan hata ayıklama gerçekleştirme yeteneğine sahiptir .

kablo hata ayıklama modülleri

PyCharm uzaktan hata ayıklama kurulumuyla ilgili olarak, yapılacak ilk şey bağlantı kurmaktır pycharm-debug.egg. Mac'liyim ve benim durumumda dosya var /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg. Komut ile RPi'ye kopyaladım:

scp /Applications/PyCharm.app/Contents/debug-eggs/pycharm-debug.egg pi@mediapi:

Bu dosyanın bulunabilmesi için Python'un yolunda bir yerde olması gerekir. Aşağıdakileri çalıştırarak uygun bir yer aradım:

pi@mediapi ~ $ python -c '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', '/usr/lib/pymodules/python2.7']

Bu listeden /usr/local/lib/python2.7/dist-packages/en uygun olduğuna inanıyorum (çünkü içinde /usr/local), yani:

sudo mv pycharm-debug.egg /usr/local/lib/python2.7/dist-packages/

Ve .pthyola sokmak için bir dosyaya ihtiyacımız var :

pi@mediapi ~ $ echo /usr/local/lib/python2.7/dist-packages/pycharm-debug.egg | sudo tee -a /usr/local/lib/python2.7/dist-packages/pycharm-debug.pth

Son olarak, kurulumu doğrulayın:

pi@mediapi ~ $ python -c 'import pydevd; print pydevd'
<module 'pydevd' from '/usr/local/lib/python2.7/dist-packages/pycharm-debug.egg/pydevd.py'>

Harika, hata ayıklama modülleri bağlandı. Bu yazı için yazdığım dinleyici senaryosunda hata ayıklayacağım .

PyCharm kurulumu

PyCharm'da şu adrese gidin: Run -> Edit Configurations...

Hit +sol ve seçmek üstünde işareti Python Remote Debug. Sadece bir isim verin remote debugve işiniz bitti; vur tamam.

uzaktan hata ayıklama yapılandırması

Şimdi tıklayın Run -> Debug 'remote debug've hata ayıklama konsolunda bir mesaj göreceksiniz,Use the following code to connect to the debugger

Çizgileri kopyala, benim durumumda böyle görünüyordu:

import pydevd
pydevd.settrace('localhost', port=56112, stdoutToServer=True, stderrToServer=True)

Bunları hata ayıkladığınız dosyanın üstüne yapıştırın ve dosyayı kaydedin.

Dosya senkronizasyonu eklentisini kullanmadan dosyaları rsync kullanarak kopyalarım:

[berto@g6]$ rsync -av ./ pi@mediapi:broadcast/

Şimdi, konfigürasyonun söylediğine dikkat edin localhost. Hata ayıklayıcıyı bağlamak için en iyi yol, RPi'nin masanızda veya dünyanın her yerinde olabilmesi için SSH'nin bağlantı noktası yönlendirme yeteneklerini kullanmaktır ve aynı şekilde çalışır. Uzak bağlantı noktasını yerel bağlantı noktasına bağlamak için bu komutu kullanarak SSH'yi RPi'ye ekleyin:

[berto@g6]$ ssh -R 56112:localhost:56112 pi@mediapi

PyCharm size bir mesaj göstermelidir Waiting for process connection...

işlem bağlantısı bekleniyor

RPi'de programı çalıştırın ve hata ayıklayıcının devreye girdiğini göreceksiniz. Varsayılan olarak, isterseniz pydevd satırından hemen sonra satırda duraklar, isterseniz yapılandırmada değiştirebilirsiniz.

Ve bu noktada uzaktan hata ayıklama yapıyorsunuz! :)

uzak komut dosyasındaki kesme noktası


Bir bakacağım, zaten bir süre Resharper'ım var :)
J4N

Pi'de uzaktan hata ayıklama için PyCharm'ı nasıl kuracağınıza ilişkin bir öğretici veya kısa bir genel bakış verebilir misiniz? Çalıştırırken sorun yaşıyorum.
James Mertz

Yanıt, uzaktan hata ayıklamaya genel bir bakışla güncellendi. @KronoS
berto

1

Bir seçenek, Python komut dosyalarınızı bir ağ sürücüsünde depolamaktır.

Örneğin, tüm kodumu kod adı verilen bir dizinin altında bir dizüstü bilgisayarda (uygun şekilde yedeklenmiş) saklıyorum. NFS kullanarak dizini ağa aktarıyorum.

Pi'de dizüstü bilgisayar NFS dizini / code ile eşlenir.

Bu, dizüstü bilgisayarda (veya Pi) geliştirmemi ve Pi'de komut dosyasını Pi'ye ssh'ing yaparak ve /code/script.py kullanarak çalıştırmamı sağlıyor.

Genel olarak Python'un benim için geriye dönük izlemesiyle hatalarım hakkında ek hata ayıklama araçlarına ihtiyaç duymadığını yeterli buluyorum.


Şimdiden ağ paylaşımlarının bir olasılık olduğunu düşündüm, ama yine de Pi'ye gitmemi, her zaman başlatmayı ve durdurmamı gerektiriyor ve hata ayıklamaya asla izin vermiyor.
J4N

2
@ J4N Genellikle dizüstü bilgisayarda Pi'ye açık bir SSH terminal penceresi açık olurdu. Yani betiği çalıştırmak sadece yukarı ok olur, geri dönün. Hata ayıklamada sorun yaşamadım. Dediğim gibi geri izleme bol miktarda bilgi sağlayacak ve herhangi bir şey için senaryo etrafında dağılmış birkaç baskı genellikle sorunu bulur.
joan
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.