'에서. 'vs' 가져오기의 임포트합니다. '

39 의 경우 모든 차이를 there& i& # 39 m 코드 부분을 궁금합니다.

from urllib import request

및 조각

import urllib.request

그들은 서로 바꿀 수 있는 경우 또는. 교환 가능한 경우, 이는 &quot standard&quot /&quot preferred";;; 구문 (경우)?

감사합니다!

질문에 대한 의견 (1)
해결책

이 때 어떻게 의존하기 액세스하려는 가져오기의) 는 다음과 같은 뜻이 있다.

from urllib import request
# access request directly.
mine = request()

import urllib.request
# used as urllib.request
mine = urllib.request()

또한 가져올 때 셨으며 앨리어스가 교도관님도요 단순하게 또는 마스크을 피하기 위해 구축됨 ins:

from os import open as open_
# lets you use os.open without destroying the 
# built in open() which returns file handles.
해설 (5)

이미 많은 사람들이 'vs' 에서 '가져오기의 설명하고 이에 대한 좀 더 후드 아래에 있는, 그래서 난 로렌아줌마가 시도하시려면 설명하기 위해 실제 차이가 없다.

첫째, 기본 가져오기의 못하며창조된 제표를 정확히 말씀 드리겠습니다.

'X' 임포트합니다

&gt. 'X' 를 만들고 있는 모듈에서의 참조입니다 임포트합니다 모듈에서는 &gt. 현재 이름공간이. 그럼 경로를 완료됨으로 모듈에서는 정의해야 합니다 &gt. 특정 속성, 메서드 내부에서 모듈에서는 액세스하면 (예: &gt. 'x' 이름 '또는' 조지아트리부트)

'*' X 에서 가져오기의

&gt. 'X' 모든 공용 객체에는 임포트합니다 모듈에서는 만들고 참조입니다 &gt. 현재 이름공간이 (즉, 모든 것을 모듈에서의 의해 정의된 &gt. 이름 없는 '로 시작하는 _') 또는 있는모든 이름 &gt. 당신이 말한. &gt. &gt. 또는, 즉 뒤에을 you& # 39, ve 실행하십시오 기술서임을 됩니다 &gt. 일반 (오히려) 이름을 사용할 것을 가리키는 'X' 에 정의된 모듈에서는. &gt. 하지만 'X' x ',' 이름 자체가 정의되지 않은, 그래서 doesn& # 39 빗나갔다. 만일 '이름' &gt. 이미 정의된, 새 버전을 바뀝니다. 이름 앞에 'X' 는 아웃하기로 &gt. 일부 다른 객체까지 너회의 모듈에서는 변경일 가리키십시오 디이브이 되지 않습니다. &gt. &gt. 따라서 모든 이름은 국내 이름공간이 모듈에서 사용할 수 있습니다.

지금 우리가 볼 때 일어나는 let& # 39 의 'Y' 가져오기의 x:

>>> import sys
>>> import os.path

'확인' 시s.모두리스 이름이 'os' 와 '오스트발트':

>>> sys.modules['os']

>>> sys.modules['os.path']

확인란 '글로벌 ()' 와 '동네 이름이' os '와' 오스트발트 딕트 이름공간이 () '':

 >>> globals()['os']

>>> locals()['os']

>>> globals()['os.path']
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'os.path'
>>>    

위에서 예를 들어, 우리가 늑대굴에서 'os' (해당 지역 및 글로벌 네임스페이스을 추가됩니다. 그래서, 우리는 'os' 사용할 수 있어야 합니다.

 >>> os

 >>> os.path

 >>>

&amp, 헤립 아니라, '길'.

>>> path
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'path' is not defined 
>>>

삭제하면 'os' 에서 '네임스페이스인 너회가 won& 지역 (), t # 39' os '또는' 오스트발트 인컨텍스트 액세스하려면 있어야 할 경우에도 ',' 시s.모두리스 존재하는 ':

>>> del locals()['os']
>>> os
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'os' is not defined
>>> os.path
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'os' is not defined
>>>

이제 let& # 39 에 보면 '에서.

'에서

>>> import sys
>>> from os import path

'확인' 시s.모두리스 이름이 'os' 와 '오스트발트':

>>> sys.modules['os']

>>> sys.modules['os.path']

그래서 않았다 '는' 시s.모두리스 동일합니까 사용하여 임포트한 임포트합니다 때 우리는 '이름'.

그래. # 39 의 let& 지역 () '와' 글로벌 () '이' 확인하는 이름공간이 딕토스 다음과 같습니다.

>>> globals()['path']

>>> locals()['path']

>>> globals()['os']
Traceback (most recent call last):
  File "", line 1, in 
KeyError: 'os'
>>>

'길' '가 아니라' 오스트발트 사용하여 액세스할 수 있습니다.

>>> path

>>> os.path
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'os' is not defined
>>>

39, & # 39 의 삭제하시겠습니까 let& path& # 39. 지역 () 에서.

>>> del locals()['path']
>>> path
Traceback (most recent call last):
  File "", line 1, in 
NameError: name 'path' is not defined
>>>

한 최종 사용 예를 앨리어싱:


>>> from os import path as HELL_BOY
>>> locals()['HELL_BOY']

>>> globals()['HELL_BOY']
해설 (2)

차이가 있습니다. 경우에 따라, 다른 won& # 39, 그 중 하나를 사용할 수 없다. 예를 들어보겠습니다. 말하도다 우리는 다음과 같은 구조:

foo.py
mylib\
    a.py
    b.py

Now, I want to 가져오기의 브룩스피 '에' '앨프리'. 임포트합니다 앨프리 '을' foo '' 보고 싶습니다. 어떻게 해야 합니까? 'A' 에서 두 명령문입니다 써요.

import b

'Foo.py' 에서 써요.

import mylib.a

'Foo.py', '이 아니라' 임포터로 실행할 때 발생합니다. 인터프리터는 가져오기의 문에 대한 불만이 커질 것으로 보인다 '고 모듈에서는 앨프리 없다' ('가져오기의 b') b. 그래서 어떻게 이 문제를 해결 한? 이런 상황에서 '에서' a '를' 가져오기의 미리b.b 기술서임을 가져오기의 변경 이후 'a' 와 'b' 모두 '미리브 작동하지 않을 수 있는'. 이때 (또는 하나 이상의 솔루션을) 를 사용하는 것이 절대 가져오기의:

from mylib import b

출처: https://stackoverflow.com/questions/16004076/python-importing-a-module-that-imports-a-module

해설 (0)

Python3 패키지에 루이브 사용하고 있었다. 아무도 다른 형태가 모두 사용 가능하며 양식을 통해 가져오기에서 선호하고 있다. 가끔 디렉터리용 때 관련된 여러 가지 패키지 '를 사용할 수 있습니다' s 스트리오스트라 가져오기의 전

이 경우, 두 번째 방법은 특정 루이브 패키지 '는' 어떻게 '와' 가져오기의 우를리발리퀘스트 우를리발리퀘스트 사용하는 표준 라이브러리 균일하게 사용됩니다.

해설 (0)

윈도 2.x 적어도 실망에는 urllib2.urlopen '에서' 가져오기의 수행할 수 없습니다.

'에서' urllib2 우를로펜 임포트합니다 수행해야 합니다

Python 2.6.5 (r265:79063, Apr 16 2010, 13:09:56)
[GCC 4.4.3] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import urllib2.urlopen
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named urlopen
>>> import urllib.request
Traceback (most recent call last):
  File "", line 1, in 
ImportError: No module named request
>>>
해설 (1)

내 가장 불만입니까 우를리발리퀘스트 임포트합니다 루이브룩스파스 참조입니다 경우에도 여전히 함께 # 39, t 임포트한 isn& 수 있다는 것입니다.

>>> import urllib3.request
>>> urllib3.logging

또한 가져다줄래요 urllib3 요청을 받고 있다. 파이썬 2.7.4 unbuntu

해설 (0)