ImportError: Нет модуля с именем температуры из терминала

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

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

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

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


person MaxRah    schedule 17.12.2016    source источник
comment
перейдите в каталог /Users/name из терминала, где находится Temperature.py, а затем инициализируйте интерпретатор Python, выполнив python. Затем выполните следующее: import temperature   -  person hemraj    schedule 17.12.2016


Ответы (3)


Первое место, где Python ищет модули для импорта, — это рабочий каталог (то есть каталог, если вы передали скрипт в python) или, если вы только что запустили python без скрипта, каталог, в котором вы находились, когда открывали python. Не найдя его там, он использует переменную PYTHONPATH, а если и там не находит, то использует путь a, указанный при установке 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, интерпретатор сначала ищет встроенный модуль с таким именем. Если он не найден, он ищет файл с именем spam.py в списке каталогов, заданном переменной sys.path. sys.path инициализируется из этих мест:

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

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

Вы можете узнать этот каталог из приглашения Python:

>>> import os
>>> os.getcwd()
person Mike Müller    schedule 17.12.2016

Файл 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']
)   

установить в режиме разработчика

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

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

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) будет лучшим вариантом.

person thebjorn    schedule 17.12.2016