我不確定我是否正確理解了您的問題,但是這裏有一個簡單的方法可以讓幾個軟件包版本無碰撞。
的目錄結構:
C:\tmp\eggs>dir /B /S
C:\tmp\eggs\libs
C:\tmp\eggs\test.py
C:\tmp\eggs\libs\foo-1.0.egg
C:\tmp\eggs\libs\foo-2.0.egg
C:\tmp\eggs\libs\foo-1.0.egg\foo.py
C:\tmp\eggs\libs\foo-2.0.egg\foo.py
現在文件的內容:
# contents of C:\tmp\eggs\libs\foo-1.0.egg\foo.py
version=(1,0)
# contents of C:\tmp\eggs\libs\foo-2.0.egg\foo.py
version=(2,0)
#contents of C:\tmp\eggs\test.py:
import sys
sys.path.insert(1, 'libs')
from pkg_resources import require
require('foo<1.5')
import foo
print foo.version
# will output (1,0)
如果更改'foo<1.5'
到'foo>1.5'
,或'foo'
輸出將改變爲(2,0)
細節你會在setuptools文檔找到。