2011-01-23 13 views

cevap

5

: test.py itibaren

import pkg1.util 

Bu Python 3 olduğunu, .py dosyalarına aşağıdakileri eklemeniz gerekmez. I would hala olsa Python 2 üzerinde sıkışmış bazı zavallıların kodunuzu kullanması gerekir eğer geriye taşınabilirliği yardımcı olduğu: Python 3 kullandığınızı veya Python 2 kullanmakta olduğunuz ve dahil ettik Verilen

from __future__ import absolute_import 

main.py: From: test.py den

import pkg1.util as util 

iki yoldan biri olmak pkg1 ve pkg2 kabul olmasına bağlı olarak kullanacağı yukarıdaki satır, burada Cevabınız Her zaman birbirleriyle ilişkili olarak aynı şekilde birlikte konuşulacak olan şeyler ya da bunların her zaman en üst düzeyde yarı bağımsız olarak konuşlandırılıp dağıtılmayacağı. İlk, bu yapardın:

from ..pkg1 import util 

ve İkinci seçenek ise, bu:

import pkg1.util as util 

Bu, her zaman dizinden Python yürüdüğüne göre, tabii ki, ima main.py yılında ya da bu dizin PYTHONPATH numaralı telefondan ya da sys.path numaralı telefondan bir sebepten dolayı (örneğin, ana Python site-paketleri dizini gibi) biter.

+0

"PYPATH" öğesinin bir nedeninden farklı bir "pkg1" var ise, yine de bu seçeneklerin her ikisiyle de * bu * pkg1 aldım? –

+0

@aharon: Size uygun dizinin yolunda ilk olduğundan emin olmak için 'pkg1' 'sys.path' ile uğraşmadan 'pkg1' elde edeceğinizi vaat eden bir seçenek yoktur. Paket adlarını bu şekilde ele almak, paketi 'ad alanı paketi' olarak yöneten 'setuptools' gibi bir paket yönetim sisteminiz yoksa çok kötü bir fikirdir. – Omnifarious

+3

Tüm bunlar 'main.py' ile aynı dizinde '__init__py' gerektirmez mi? Olduğu gibi, 'test.py' ve 'util.py' ortak bir süper paketin alt paketi olmayan tamamen ayrı paketlerdedir. –

1

: Sözünü yana

from ..pkg1 import util 
İlgili konular