2016-12-17 1 views
0

У меня есть миниконда, в которой установлены и запущены различные версии python в разных средах. Я создал файл temperature.py и сохранил его в папке с именем питона в моем корневом каталоге:/Users/имяImportError: Нет модуля с температурой от терминала

Когда я тип питона на терминале, а затем запустить импорт temperature.py от терминала я получаю эту ошибку:

ImportError: нет модуль с именем «температура»

Где я должен быть сохранен файл temperature.py?

+0

просмотреть/Пользователи/каталог имен с терминала, где находится температура.py, а затем инициализировать интерпретатор python, выполнив python. Затем выполните следующее: 'import temperature' – hemraj

ответ

1

питон выглядит первое место для модулей для импорта - это рабочий каталог (т. е. каталог, если вы передали скрипт на python), или если вы только что запустили python без скрипта, каталог, в котором вы были, когда вы открыли python. Не найдя его там, он использует переменную PYTHONPATH и, если ее там не найти, он использует путь, указанный при установке Python.

Во время выполнения вы можете проверить с помощью sys.path фактические пути, в которых он находится.

import sys 
print(sys.path) 

И вы можете даже изменить sys.path, если вам нужно. Добавить к началу, как это место, импорт будет выглядеть первый:

import sys 
sys.path.insert(0, <path_of_temperature.py>) 

Источник https://docs.python.org/3/tutorial/modules.html

6.1.2. Путь поиска модуля

Когда импортируется модуль со спамом, интерпретатор сначала ищет встроенный модуль с этим именем. Если он не найден, он ищет файл с именем spam.py в списке каталогов, заданных переменной sys.path. sys.path инициализируется из этих мест:

  1. Каталог, содержащий входной скрипт (или текущий каталог , когда не указан ни один файл).
  2. PYTHONPATH (список имен каталогов, с тем же синтаксисом, что и переменная оболочки PATH).
  3. Не зависящее от установки значение по умолчанию.
1

Скопируйте/переместите temperature.py в свой текущий рабочий каталог.

Вы можете найти этот каталог из командной строки Python:

>>> import os 
>>> os.getcwd() 
0

Файл temperature.py должен быть доступным для поиска на Python. Python ищет импортируемых пакетов в sys.path:

>>> import sys 
>>> print(sys.path) 
['', ...] 

Вы можете:

(1) добавить файл temperature.py в каталог, который находится на sys.path (первый элемент является пустой строкой, так текущего рабочего каталога всегда будет работать).

(2) динамически добавить каталог (это общепринято, чтобы добавить на фронте)

import sys 
    sys.path.insert(0, path-to-directory-containing-temperature.py) 

(3) Добавить каталог в переменную в PYTHONPATH среды.

(4) Создайте пакет и установить его (в режиме разработки, если вы работаете на нем):

(dev) go|c:\srv\tmp\temp> cat temperature.py 
def get_temp(): 
    print 42 

добавить очень минималистичный файл setup.py:

(dev) go|c:\srv\tmp\temp> cat setup.py 
from setuptools import setup 
setup(
    name='temp', 
    py_modules=['temperature'] 
) 

установки в режиме dev

c:\srv\tmp\temp> python setup.py develop 
running develop 
running egg_info 
... 
Creating c:\python27\lib\site-packages\temp.egg-link (link to .) 
Adding temp 0.0.0 to easy-install.pth file 

Installed c:\srv\tmp\temp 
Processing dependencies for temp==0.0.0 
Finished processing dependencies for temp==0.0.0 

Теперь вы можете импортировать его из любого места (обратите внимание, что я начинаю с совершенно другого d irectory):

c:\> python 
Python 2.7.11 (v2.7.11:6d1b6a68f775, Dec 5 2015, 20:32:19) [MSC v.1500 32 bit (Intel)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
>>> import temperature 
>>> temperature.get_temp() 
42 

Когда вы только начинаете, я бы выбрал (1) или (3), через некоторое время (4) будет лучшим вариантом ..

Смежные вопросы