अद्यतन:Zooba के रूप में नीचे का उल्लेख है, free x86 and AMD64 (x86-64) VC90 c-compilers for Python-2.7 are now available from Microsoft।
अद्यतन:Patch vcvarsall.bat
बजाय एसडीके खोल का उपयोग कर और नीचे दिए गए निर्देशों के रूप DISTUTILS_USE_SDK
और MSSdk
पर्यावरण चर स्थापित करने के किसी भी खोल में pip
के साथ सीधे एसडीके v7.0 से 64 compilers उपयोग करने के लिए। Fix vcvarsall.bat to install Python-2.7 x64 extensions with v90 instead of sdk7 देखें।
tl; डॉ: उपयोग विंडोज एसडीके v7.0 compilers, एसडीके खोल खोल सकते हैं और फोन
C:\> setenv /release /x64
C:\> set DISTUTILS_USE_SDK=1
C:\> MSSdk=1
, distutils का उपयोग कर pip
या easy_install
पायथन 2.7.x एक्सटेंशन बनाने के लिए। Python x64 Package Extensions with pip, MSVC 2008 Express & SDK 7 देखें।
नोट: आप Numpy optimized using Intel MKL from Christoph Gohlke इंस्टॉल कर सकते हैं। वर्चुअलएन्व के लिए, बाइनरी वितरण विंडोज इंस्टालर को wheel फ़ाइल में कनवर्ट करने का प्रयास करें जिसे पीआईपी के साथ स्थापित किया जा सकता है। स्रोत से NumPy बिल्डिंग छोटा नहीं है। यह OpenBLAS की हालिया परिचय और उपलब्धता के साथ एक संभावना बन गया है, GotoBLAS का कांटा। optimized binaries available for Windows x86 and x86-64 के साथ-साथ स्रोत भी है जो GotoBLAS या ATLAS से संकलित करने के लिए अपेक्षाकृत सरल है।
नोट: अतीत में मैं स्रोत से NumPy संकलन है क्योंकि आप अपने मंच है जो बहुत समय गहन था के लिए BLAS अनुकूलन करने के लिए किया था की सिफारिश नहीं की थी, और संदर्भ Blas (FORTRAN) या CBLAS (C/C++) कार्यान्वयन अपेक्षाकृत कम प्रदर्शन कर रहे थे। इसके अलावा NumPy LAPACK पर निर्भर करता है जो बीएलएएस पर न्यूमपी बनाने के लिए अतिरिक्त बाधा पर निर्भर करता है। हालांकि ओपनबीएलएस बाइनरी पहले से ही LAPACK के साथ संकलित हैं, इसलिए इस बाधा को पहले ही हटा दिया जा चुका है। Carl Kleffner's static MinGW-w64 toolchains to build NumPy with OpenBLAS on Windows देखें - उन्होंने कुछ एबीआई असंगतताओं और पाइथन -77 के लिए सही माइक्रोसॉफ्ट विजुअल सी कॉमन रनटाइम लाइब्रेरी (msvcr90.dll
) से जुड़े मुद्दों को हल किया है।
तो विंडोज 7 x64 पर पायथन एक्सटेंशन स्थापित करने के बारे में मुख्य प्रश्न के आगे।
एक्सटेंशन संकलित करने का अनुशंसित तरीका पाइथन साझा लाइब्रेरी [1-3] संकलित करने के लिए उपयोग किए गए समान कंपाइलर का उपयोग करना है। official Python 2.7.x for Windows को Microsoft Visual C++ Compilers version 9.0 [4] (aka MSVC90 or simply VC90) from Microsoft Visual Studio 2008 Professional का उपयोग करके संकलित किया गया था, जिसे आप Microsoft DreamSpark से मुक्त करने में सक्षम हो सकते हैं। स्पष्ट रूप से x64 संकलक डिफ़ॉल्ट रूप से स्थापित नहीं हैं, इसलिए सुनिश्चित करें कि वे x86 कंपाइलर्स के साथ स्थापित हैं। नोट: एमएस विजुअल स्टूडियो 2008 अब उपलब्ध नहीं हो सकता है, लेकिन एमएस विजुअल स्टूडियो 2010 आपको स्थापित करने पर MSVC90 टूलचैन का उपयोग करने देगा, जिसे विंडोज एसडीके 7 से स्थापित किया जा सकता है।
आप बता सकते हैं कि जब आप पाइथन दुभाषिया को कमांड लाइन से निष्पादित करते हैं तो हेडर को देखकर आपके संस्करण को किस संस्करण के साथ बनाया गया था। उदा।: Python 2.7.3 (default, Apr 10 2012, 23:24:47) [MSC v.1500 64 bit (AMD64)] on win32
का अर्थ है कि यह वीएस 2008 सी ++ के साथ बनाया गया था। आप पाइथन को स्रोत से स्वयं बना सकते हैं, लेकिन यह भी एक कठिन कार्य है। आम तौर पर संकलक रनटाइम को मिश्रित करने की अनुशंसा नहीं की जाती है, हालांकि व्यवहार में आप पाते हैं कि वे अभी भी काम करते हैं।
आप अपने दिल GNU GCC के प्रयोग पर स्थापित किया है, तो आप का उपयोग करने के mingw-w64 क्योंकि MinGW केवल देशी x86 अनुप्रयोगों के लिए, नहीं AMD64/x86-64 है होगा। तुम्हें पता है,
remove the -mno-cygwin bug from distutils.cygwinccompiler.Mingw32ccompiler और
export a library definitions file using either pexports.exe
from msys or gendef.exe
from msys2 and make a static library libpython27.a
using dlltool.exe
(msys/msys2) (but the newest releases of Official Python for Windows already have this file in the Python27\lib
folder, thanks!)
हालांकि अंत में आप अभी भी क्रम कि अजगर, साथ msvcr90.dll
बनाया गया था के खिलाफ से जोड़ने के लिए है, तो आप Visual C++ 2008 redistributable की आवश्यकता होगी की आवश्यकता होगी। नोट: mingw-w64 से विंडोज जीसीसी msvcrt.dll
which is not the same as msvcr90.dll
or later का उपयोग करता है।
आप Microsoft Visual C++ 2008 Express SP1 उपयोग कर सकते हैं आप मुक्त करने के लिए यह करना चाहते हैं, लेकिन आप क्योंकि एक्सप्रेस संस्करण नहीं 64 compilers है Windows SDK 7 for .NET Frameworks 3.5 SP1 जोड़ने की आवश्यकता होगी। वीएस 2008 एक्सप्रेस & एसडीके 7 के साथ x64 सी ++ एक्सटेंशन इंस्टॉल करने की प्रक्रिया cython site for windows x64 extensions पर बहुत समान है। नोट: एमएस विजुअल स्टूडियो 2008 एक्सप्रेस अब उपलब्ध या समर्थित नहीं है।
एफवाईआई: आपको माइक्रोसॉफ्ट कंपाइलर्स का उपयोग करने के लिए विजुअल स्टूडियो की आवश्यकता नहीं है। वे उचित एसडीके पैकेज के साथ मुफ्त में उपलब्ध हैं। CL.EXE
संकलक निष्पादन योग्य है, लेकिन आपको ऑटोटूल या कुछ अन्य टूल जैसे कि सीएमकेई द्वारा सामान्य रूप से कॉन्फ़िगर किए गए प्लेटफ़ॉर्म विकल्प सेट करना होगा।सीएमकेई एमएसवीसी के साथ अच्छी तरह से खेलता है, लेकिन ऑटोोटूल AFAIK एमएसवीसी के साथ काम नहीं करता है और कुछ पॉज़िक्स पर्यावरण और उपयोगिता की आवश्यकता होगी जो विंडोज़ पर MSYS में उपलब्ध हैं।
कई अजगर संकुल कि distutils या setuptools उपयोग करते हैं, वे दिशाओं कि संदर्भ दस्तावेज़ के माध्यम से विभिन्न स्थानों में पोस्ट कर रहे हैं और विकी का पालन करते हुए विंडोज एसडीके 7 का उपयोग करके एक्सटेंशन संकलन कर सकते हैं के लिए: प्रारंभ मेनू से
- सभी कार्यक्रम तो माइक्रोसॉफ्ट विंडोज एसडीके v7.0 चयन और Windows एसडीके के लिए अनुकूलित एक कमांड विंडो खोलने के लिए अध्यक्ष एवं प्रबंध निदेशक शैल शुरू।
%COMSPEC% /E:ON /V:ON /K "%PROGRAMFILES%\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd"
नोट::
चरण # 1 प्रारंभ मेनू से या एक कमांड प्रॉम्प्ट (उर्फ C:\Windows\System32\cmd.exe
) से भागो बॉक्स में निम्न लिखकर के बराबर है झंडे /E:ON
, जो आदेश एक्सटेंशन सक्षम करता है, और /V:ON
, जो देरी परिवर्तनीय विस्तार को सक्षम बनाता है, दोनों को SetEnv.cmd
फ़ंक्शन के लिए आवश्यक है, या आपको एक संदेश मिलेगा कि x64 कंपाइलर स्थापित नहीं हैं, & c।
फिर setenv /Release /x64
टाइप करें जो विशेष रूप से विंडोज 7 x64 रिलीज (बनाम डिबग या x86 जो डिफ़ॉल्ट हैं) के लिए एसडीके पर्यावरण चर सेट करेगा।
- प्रकार
set DISTUTILS_USE_SDK=1
हिट वापसी और उसके बाद set MSSdk=1
टाइप करें और है कि आप एसडीके का उपयोग कर रहे हैं, और उस एसडीके वातावरण चर के सभी का निर्धारण करेगा distutils.msvccompiler
बताने के लिए वापस जाएँ। - अब अपनी पसंद के स्थापना विधि का उपयोग करें:
pip install pyyaml ntlk
जो सिफारिश की तरह, see ntlk है, लेकिन आप setuptools और pip स्थापित होना चाहिए।
python setup.py install
प्रत्येक डाउनलोड, निकाले गए टैरबॉल
easy_install pyyaml ntlk
जो पुराना तरीका है और अंडे स्थापित करने का एकमात्र तरीका है।
[1] Building C and C++ Extensions on Windows
[2] distutils.msvccompiler — Microsoft Compiler
[3] Python Dev Guide: Getting Started: Windows
[4] What version of visual studio is this python compiled with
विंडोज़ पर बाइनरी एक्सटेंशन बनाना कुख्यात रूप से मुश्किल है। अफसोस की बात है [पायथन पैकेजिंग उपयोगकर्ता मार्गदर्शिका] (http://python-packaging-user-guide.readthedocs.org/en/latest/) अपूर्ण है [इस विषय पर] (https://packaging.python.org/en/ नवीनतम/एक्सटेंशन/# इमारत-द्विआधारी-एक्सटेंशन)। योगदान स्वागत है। –
संभावित डुप्लिकेट [त्रुटि: vcvarsall.bat खोजने में असमर्थ] (http://stackoverflow.com/questions/2817869/error-unable-to-find-vcvarsall-bat) –