2011-03-10 16 views
8

कहें, उदाहरण के लिए कि FooPackage-1.1 और FooPackage-1.2 दोनों डिस्ट-पैकेज में अंडे के रूप में स्थापित हैं। मैं जिसकी आवश्यकता है उसे आयात कैसे करूं?पायथन: यदि एक ही पैकेज के कई अंडे संस्करण स्थापित हैं, तो मैं विशेष रूप से आवश्यक संस्करण को कैसे आयात करूं?

उत्तर

16

आप आयात समय में अपनी आवश्यकताओं को निर्दिष्ट करने के लिए pkg_resources उपयोग कर सकते हैं:

import pkg_resources 
pkg_resources.require('FooPackage==1.2') 
import FooPackage 

उदाहरण के लिए:

% easy_install simplejson==2.1.3 
% easy_install simplejson==2.1.2 

pkg_resources.require('simplejson==2.1.2') 
import simplejson 
assert simplejson.__version__ == '2.1.2' 
+1

+1, अच्छा जवाब :) जवाब के अलावा। यदि आप हमेशा यह सुनिश्चित करना चाहते हैं कि आपको सही संस्करण मिल गया है, तो अपने स्वयं के पैकेज के साथ वर्चुअलएन्व का उपयोग करने का प्रयास करें। – Wolph

+0

मेरे लिए काम नहीं करता है; मुझे एक कथन संघर्ष मिलता है: 'pkg_resources.VersionConflict: (SQLAlchemy 1.1.0b1.dev0 (/.virtual/lib/python2.7/site-packages/SQLAlchemy-1.1.0b1.dev0-py2.7-linux-x86_64.egg), Requirement.parse ('sqlalchemy == 0.8.7')) ' – EoghanM