2016-08-25 13 views
9

मैं एक डॉकर दुभाषिया का उपयोग कर पायचर्म में एक प्रोजेक्ट विकसित कर रहा हूं, लेकिन अधिकांश "इंटरैक्टिव" चीजें करते समय मैं मुद्दों में भाग ले रहा हूं। उदाहरण के लिए,पीएच चार्म और डॉकर इंटरप्रेटर के साथ एक्स 11 अग्रेषण

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

देता

RuntimeError: Invalid DISPLAY variable 

मैं इस का उपयोग कर

import matplotlib 
matplotlib.use('agg') 

जो त्रुटि से छुटकारा हो जाता दरकिनार कर सकते हैं, लेकिन कोई साजिश जब मैं plt.show करना() का उत्पादन किया है। पांडों को आयात करने के बाद डीबग करने का प्रयास करते समय मुझे [pycharm remote python console]: "cannot connect to X server" error with import pandas थ्रेड में भी वही त्रुटि मिलती है, लेकिन मैं अपने डॉकर कंटेनर में एसएसएच नहीं कर सकता, इसलिए वहां प्रस्तावित समाधान काम नहीं करता है। मैंने "-eSPLAY = $ DISPLAY" को "डॉकर रन" कमांड में पास करने का समाधान देखा है, लेकिन मुझे विश्वास नहीं है कि PyCharm में डॉकर दुभाषिया के साथ कमांड लाइन पैरामीटर निर्दिष्ट करने के लिए कोई कार्यक्षमता है। क्या किसी प्रकार का स्थायी, जेनेरिक एक्स 11 अग्रेषण स्थापित करने का कोई तरीका है (यदि वह वास्तव में मूल कारण है) ताकि भूखंडों को मेरी स्थानीय मशीन पर DISPLAY पर उचित रूप से पारित किया जा सके? अधिक आम तौर पर, क्या किसी ने Pycharm में सफलतापूर्वक एक डॉकर दुभाषिया के साथ matplotlib का उपयोग किया है?

+0

आप कंटेनर के बजाय ssh में exec डोकर कर सकते हैं? –

+0

यदि मैं मैन्युअल रूप से कंटेनर को कताई कर रहा था, लेकिन PyCharm यह सब करता है और इसके बारे में सुंदर ब्लैक बॉक्स-वाई है - मैंने दस्तावेज़ में देखा था कि यह हर बार एक नया कंटेनर बनाता है, हालांकि, निष्पादन निश्चित रूप से काम नहीं करेगा। –

+0

क्या आपने इस समस्या का समाधान ढूंढ लिया है? –

उत्तर

1

भागो xhost + मेजबान पर और जोड़ने docker run के लिए इन विकल्पों: -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix

+0

@ जेपी। क्या यह आपकी समस्या को ठीक करता है? – Robert

+0

@Robert अभी तक नहीं है, लेकिन यह पिचर्म/डॉकर एकीकरण की सीमित समझ के साथ और अधिक हो सकता है। ऐसा लगता है कि पिचर्म छवियों से अपने कंटेनरों को स्पिन करता है (पैरामीटर के बारे में ओपी की टिप्पणी देखें) इसलिए मेरे पास इस टिप्पणी के अनुसार पर्यावरण/वॉल्यूम जानकारी सेट करने की क्षमता नहीं है –

+0

पिछली टिप्पणी का पालन करें। मैंने अभी देखा है कि मैं पिचर्म में डीबग/रन कॉन्फ़िगरेशन के माध्यम से डॉकर झंडे जोड़ सकता हूं। कल के साथ खेलने के लिए जा रहे हैं और वापस रिपोर्ट करें –

2

यहाँ the solution है मैं के साथ आया था। मुझे आशा है कि यह दूसरों की मदद करेगा। चरणों इस प्रकार हैं:

  1. स्थापित करें और चलाने के Socat

    socat टीसीपी-सुनें: 6000, reuseaddr, कांटा यूनिक्स ग्राहक: \ "$ प्रदर्शन \"

  2. स्थापित करें और चलाने के XQuartz (शायद पहले से स्थापित)

  3. संपादित PyCharm रन/डिबग विन्यास अपनी परियोजना के लिए,
(मेरे मामले 192.168.0.6:0 में) प्रदर्शन चर के लिए उपयुक्त पता सेट

रनिंग/साजिश रची ग्राफ प्रदर्शित एक नया क्वार्ट्ज पॉपअप में परियोजना परिणाम डीबगिंग, एक छवि को बचाने के लिए किसी भी आवश्यकता के बिना, आदि

संबंधित मुद्दे