2016-08-25 15 views
9

Bir Docker yorumlayıcısı kullanarak PyCharm'da bir proje geliştiriyorum, ancak çoğu "etkileşimli" şeyler yaparken sorunlara koşuyorum. örneğin PyCharm ve Docker Tercüman ile X11 iletme

import matplotlib.pyplot as plt 
plt.plot([1, 2, 3], [4, 5, 6]) 

RuntimeError: Invalid DISPLAY variable 

Ben hata kurtulur bu kullanarak

import matplotlib 
matplotlib.use('agg') 

aşmak olabilir; ancak herhangi bir arsa ı plt.show yaptığınızda() üretilir. Ayrıca, Pandaları içe aktardıktan sonra hata ayıklamaya çalışırken [pycharm remote python console]: "cannot connect to X server" error with import pandas iş parçacığıyla aynı hatayı alıyorum, ancak dolandırıcı kapsayıcımın içine SSH yapamıyorum, böylece önerilen çözüm işe yaramıyor. "-E DISPLAY = $ DISPLAY" komutunu "docker run" komutuna geçirme çözümünü görmüştüm ama PyCharm'ın Docker yorumlayıcısında olduğu gibi bunun gibi komut satırı parametrelerini belirlemek için herhangi bir işleve sahip olduğuna inanmıyorum. Bir tür kalıcı, jenerik X11 iletme (herhangi bir temel nedense) kurmanın herhangi bir yolu var mı? Böylece, araziler yerel makinemde DISPLAY'e uygun şekilde geçecek mi? Daha genel olarak, herkes Pypharm'da bir Docker tercümanı ile matplotlib'i başarıyla kullandı mı? docker run için ana bilgisayarda

+0

Docker yerine ssh komutunu kullanabilir misiniz? –

+0

Eğer konteynırı elle çeviriyor olsaydım, ama PyCharm bunu yapıyor ve oldukça siyah bir kutu - bu belgede her seferinde yeni bir kap oluşturduğunu gördüm, bu yüzden exec kesinlikle işe yaramayacak. –

+0

Bu sorun için bir çözüm bulmayı başardınız mı? –

cevap

1

Run xhost + ve eklemek bu seçenekler: -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix

+0

@JP. Bu sorununuzu giderir mi? – Robert

+0

@Robert Henüz değil, ancak sınırlı miktarda pycharm/docker entegrasyonu ile ilgili daha fazla olabilir. Pycharm görüntülerini kendi konteynırlarına döndürüyor gibi görünüyor (OP'nin parametreler hakkındaki yorumuna bakın), bu yoruma göre çevre/ses bilgisini ayarlama yeteneğine sahip değilim. –

+0

Bir önceki yoruma kadar izleyin. Sadece, pankek içinde hata ayıklama/çalıştırma yapılandırması aracılığıyla docker bayraklarını ekleyebileceğimi fark ettim. Bu yarın ile oynamak ve geri rapor –

2

İşte the solution var ben ile geldi. Umarım bu diğerlerine yardım eder. Adımlar şunlardır: SoCat TCP-DİNLE

  1. SoCat

    kurun ve çalıştırın: 6000, reuseaddr, çatal UNIX MÜŞTERİ: \ "$ EKRAN \"

  2. XQuartz kurun ve çalıştırın

(benim durumumda 192.168.0.6:0 olarak) EKRAN değişken için uygun adresi ayarlayarak, projeniz için

  • Edit pycharm çalıştırma/ayıklama yapılandırma (muhtemelen zaten yüklü)

    Projenin çalıştırılması/hata ayıklaması, grafik görüntüsünü görüntülemeye gerek duymadan yeni bir kuartz açılır penceresine, herhangi bir görüntüyü kaydetmeye gerek kalmadan, vb. Neden olur.