Невозможно импортировать мой собственный модуль при запуске скрипта в Spyder - PullRequest
1 голос
/ 29 июня 2019

Согласно официальной документации Python или этой записи импорт собственных модулей в скрипты довольно прост. По сути, мне просто нужно создать свои .py файлы, сохранить их в одном каталоге, и я могу импортировать их, используя

from my_module import my_function

Это именно то, что я сделал в своем проекте. Я написал два скрипта и сохранил их в одном каталоге. Я хотел бы использовать некоторые функции из них в третьем скрипте (снова он сохраняется в том же каталоге). Как на картинке ниже.

My python scripts

Теперь я импортирую WebScraper.py следующим образом enter image description here

Как вы можете видеть на картинке выше, есть ошибка, которая говорит, что нет модуля с именем WebScraper . Как я могу справиться с этой проблемой?

Ответы [ 3 ]

3 голосов
/ 29 июня 2019

В IDE Spyder, как я могу судить по вашему скриншоту, текущий рабочий каталог (отображается в правом верхнем углу) отличается от каталога, в котором находится ваш скрипт (отображается в верхней части панели редактора).

Если вы откроете меню «Инструменты», выберите «Настройки» и перейдете на вкладку «Выполнить», вы увидите поле с именем «Настройки рабочего каталога», в котором вы можете выбрать между «каталогом файла, в котором находится файл».выполнено "или" текущий рабочий каталог ".Я подозреваю, что вы выбрали последнее.Что объясняет, почему модуль не может быть найден.

При настройке по умолчанию - «каталог исполняемого файла» - Spyder просто запустит скрипт в своей папке, и у скрипта не будет проблем с поискоммодуль.

1 голос
/ 29 июня 2019

По умолчанию большинство приложений имеют рабочий каталог по умолчанию.

Пример: Если вы откроете командную строку, она будет похожа на C:\Users\<username> в Windows, /Users/<username> в MAC.

Таким образом, у Spyder также будет свой рабочий каталог. Всякий раз, когда вы будете выполнять какой-либо скрипт, Spyder будет пытаться найти его первым.

Мое предложение состоит в том, чтобы программно проверить рабочий каталог и перейти в правильное место (если мы находимся не в том месте). Посмотрите на приведенный ниже код.

import os
os.getcwd() # Check current directory's path
os.chdir('/Users/david/Documents/Python/Project') # Navigate

И после этого попытайтесь импортировать, это будет работать.

И, если хотите, вы можете добавить этот путь в список sys.path.

1 голос
/ 29 июня 2019

вы используете spyder.

все, что вам нужно сделать, это в проводнике файлов spyder перейти в ваш проект, т.е.

/User/david/Document/Python/Project/

, а затем закрыть терминал ipythonи начните новый (после того, как вы перешли в папку проекта) в проводнике файлов.

почему ваш метод не работает, потому что ipython принял путь выполнения python в качестве текущего пути, открытого в проводнике файлов (spyder)

запустите код, он будет работать

в противном случае вам необходимо указать относительный путь и использовать

 from . import WebScraper 
 x=WebScrapper().function
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...