गीतात्मक विषयांतर
कुछ महीने पहले मैंने अजगर को सीखने का फैसला किया। लेकिन ... केवल इस पूरे वातावरण में टिक गया, मेरे पास एक विकल्प था: अपेक्षाकृत नया python3 या python2.7 सीखना। पसंद अजगर 3 की दिशा में गिर गई, भले ही उस पर पहले से ही मौजूद कुछ छोटी राशि python2.7 काम करती हो, और भाषा के विकास में भाग लेना दिलचस्प था।
हाल ही में, कुछ डेटा की कल्पना करने की आवश्यकता थी (जैसे ओपनजीएल में), इसलिए यह पता लगाने का निर्णय लिया गया कि क्या और कैसे, सब कुछ एक साथ रखा जाए और फेरीवालों को इसके बारे में बताया जाए।
यह लेख मुख्य रूप से अजगर (जैसे मैं) में शुरुआती के लिए लक्षित है, और "इसे स्थापित करें और यह" की शैली में लिखा गया है, इसलिए कृपया पुराने टाइमर चप्पल फेंकें और उन्हें समझ के साथ व्यवहार न करें।
तैयार हो रहा है
चूंकि हमें पुस्तकालयों का निर्माण करना है, इसलिए हमें
python3-dev स्थापित करने की आवश्यकता है।
python3-setuptools को हमें
easy_install3 स्थापित करना होगा।
हम डालते हैं:
sudo apt-get install python3-dev python3-setuptools
अब आप पुस्तकालयों को एकत्र कर सकते हैं।
पुस्तकालयों
हम स्थापित
easy_install3 के माध्यम से python3 के लिए पाइप डालते हैं:
sudo easy_install3 pip
पाइप स्थापित है, अब हम उन पुस्तकालयों को इकट्ठा कर सकते हैं जिनकी हमें आवश्यकता है:
sudo pip-3.2 install numpy PyOpenGL PyOpenGL_accelerate
(स्थापना के समय, पाइप का वर्तमान संस्करण 3.2 था, भूत, भविष्य या समानांतर ब्रह्मांड में, यह संख्या भिन्न हो सकती है)।
OpenGL.GLUT मॉड्यूल को काम करने के लिए, फ्रीगल सेट करें:
sudo apt-get install freeglut3
अब सब कुछ तैयार है, और आप उदाहरणों को चलाने की कोशिश कर सकते हैं।
इतना सरल नहीं है
हम साइट
http://nehe.gamedev.net/tutorial पर जाते हैं , उदाहरणों का अध्ययन करते हैं, अजगर कोड डाउनलोड करते हैं, python2.7 पर प्रदर्शन की जांच करते हैं (यदि pytohn2.7 के लिए OpenGL लाइब्रेरी स्थापित हैं - सब कुछ उसी तरह किया जाता है, तो पाइप को
install numpy PyOpenGL PyOpenGL_accelerate
) ।
उदाहरण के लिए,
दूसरा उदाहरण डाउनलोड करें, देखें:

python3 पर इसे चलाने की कोशिश करने पर, हमें एक त्रुटि मिलती है:
$ python3 lesson02.py File "lesson02.py", line 153 print "Hit ESC key to quit." ^ SyntaxError: invalid syntax
हम इसे 2to3 उपयोगिता का उपयोग करके संसाधित करते हैं (पहले यह
print
करने के लिए ब्रैकेट जोड़ रहा था):
RefactoringTool: Skipping implicit fixer: buffer RefactoringTool: Skipping implicit fixer: idioms RefactoringTool: Skipping implicit fixer: set_literal RefactoringTool: Skipping implicit fixer: ws_comma RefactoringTool: Refactored test.py --- lesson02.py (original) +++ lesson02.py (refactored) @@ -150,6 +150,6 @@ glutMainLoop() # Print message to console, and kick off the main to get it rolling. -print "Hit ESC key to quit." +print("Hit ESC key to quit.") main() RefactoringTool: Files that need to be modified: RefactoringTool: lesson02.py
, लेकिन यहाँ हम एक आश्चर्य के लिए हैं:
Hit ESC key to quit. Traceback (most recent call last): File "lesson02.py", line 154, in <module> main() File "lesson02.py", line 109, in main glutInit(()) File "/usr/local/lib/python3.2/dist-packages/OpenGL/GLUT/special.py", line 318, in glutInit holder[i] = arg TypeError: bytes or integer address expected instead of str instance
सब कुछ दूर करने के लिए, हमें glutInit () के लिए कमांड लाइन तर्क पास करना होगा:
glutInit(sys.argv)
फिर से चलाएं:
Hit ESC key to quit. Traceback (most recent call last): File "test.py", line 154, in <module> main() File "test.py", line 127, in main window = glutCreateWindow("Jeff Molofee's GL Code Tutorial ... NeHe '99") ctypes.ArgumentError: argument 1: <class 'TypeError'>: wrong type
तो-तो-और, और क्या ... एक छोटी Google खोज के बाद, हम पाते हैं कि खिड़की का शीर्षक क्रमशः एक बाइट स्ट्रिंग होना चाहिए, लाइन से पहले "बी" जोड़ें:
window = glutCreateWindow(b"Ura, vzletelo!")
और खुशी के बारे में!

दुर्भाग्य से, यह रूसी पत्रों का समर्थन नहीं करता है (मुझे वास्तव में इसकी आवश्यकता नहीं थी, इसलिए मुझे समझ नहीं आया)।
ठीक है, आप हमारे घोड़े पर काम करने का आनंद ले सकते हैं :)

फ़ाइलों के साथ संग्रह से लिंक करें:
ड्रॉपबॉक्सआपका ध्यान के लिए धन्यवाद, मुझे आशा है कि यह लेख किसी की मदद करता है। मैं ख़ुशी से आलोचना और सुझावों को स्वीकार करूँगा।
सूत्रों का कहना है
साइट
http://nehe.gamedev.net/ से सामग्री के लिए बहुत धन्यवाद