Importowanie modułu Python kończy się niepowodzeniem (http.cookies)
Z tego, czego dowiedziałem się z moich badań tutaj i gdzie indziej, wydaje się, że jeśli a) moduł znajduje się w ścieżce wyszukiwania Pythona lub b) zawarty w pakiecie znajdującym się w ścieżce wyszukiwania Pythona, to polecenie importu powinno być w stanie znaleźć i zaimportować moduł.
W interaktywnym skrypcie poniżej zauważ, że oba te warunki zostały spełnione. folder http zawiera__init__.py
plik, czyniąc go pakietem, a ten folder zawiera moduł o nazwie cookies.py. A jednak polecenieimportuj http.cookies kończy się niepowodzeniem, a traceback wygląda tak, jakby Python szuka tego modułu w folderach django, co, jak wiem, nie powiedzie się, ponieważ w folderze pakietu http django nie ma modułu cookies.py. Próbowałem też manipulować ścieżką wyszukiwania, edytując mój PYTHONPATH, aby upewnić się, że folder pakietu http biblioteki standardowej znajduje się wcześniej w ścieżce wyszukiwania, ale jak widać poniżej, import nadal nie działa.
Co powoduje tę awarię?
Python 3.3.1 (v3.3.1:d9893d13c628, Apr 6 2013, 20:25:12) [MSC v.1600 32 bit (Intel)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> import sys
>>> for item in sys.path: print(item)
C:\Python33\Lib\idlelib
C:\Python33\lib\site-packages\setuptools-1.1.7-py3.3.egg
c:\Python33\Lib\http
C:\Python33\Lib\site-packages
C:\Python33\Lib\site-packages\django
C:\Python33\Lib\site-packages\django\bin
C:\Windows\system32\python33.zip
C:\Python33\DLLs
C:\Python33\lib
C:\Python33
C:\Python33\lib\site-packages\win32
C:\Python33\lib\site-packages\win32\lib
C:\Python33\lib\site-packages\Pythonwin
>>> import os
>>> os.path.isfile('C:/Python33/Lib/http/__init__.py')
True
>>> os.path.isfile('C:/Python33/Lib/http/cookies.py')
True
>>> import http.cookies
Traceback (most recent call last):
File "<pyshell#6>", line 1, in <module>
import http.cookies
File "C:\Python33\Lib\site-packages\django\http\__init__.py", line 1, in <module>
from django.http.cookie import SimpleCookie, parse_cookie
File "C:\Python33\Lib\site-packages\django\http\__init__.py", line 1, in <module>
from django.http.cookie import SimpleCookie, parse_cookie
File "C:\Python33\Lib\site-packages\django\http\cookie.py", line 5, in <module>
from django.utils.six.moves import http_cookies
File "C:\Python33\Lib\site-packages\django\utils\six.py", line 86, in __get__
result = self._resolve()
File "C:\Python33\Lib\site-packages\django\utils\six.py", line 105, in _resolve
return _import_module(self.mod)
File "C:\Python33\Lib\site-packages\django\utils\six.py", line 76, in _import_module
__import__(name)
ImportError: No module named 'http.cookies'
>>>