Моя программа на Python не работает при запуске с pythonw.exe из-за импорта - PullRequest
0 голосов
/ 13 мая 2018

Я пытаюсь запустить базовую программу на python (файл loop.pyw) через программу pythonw.exe, чтобы посмотреть в моем диспетчере задач, действительно ли скрипт python выполняется сам по себе.

Вот программа:

import traceback
import os
try:
    from stem import Signal
except ImportError:
    f1 = open("C:/Users/mtigr/Desktop/Apprentissage-Projets Programmation/Python/ZCHANGEIP/traceback.txt", "a")
    traceback.print_exc(file=f1)
    f1.close()
try:
    from stem.control import Controller
except ImportError:
    f1 = open("C:/Users/mtigr/Desktop/Apprentissage-Projets Programmation/Python/ZCHANGEIP/traceback.txt", "a")
    traceback.print_exc(file=f1)
    f1.close()

try:
    import requests
except ImportError:
    f1 = open("C:/Users/mtigr/Desktop/Apprentissage-Projets Programmation/Python/ZCHANGEIP/traceback.txt", "a")
    traceback.print_exc(file=f1)
    f1.close()
import urllib
try:
    from bs4 import BeautifulSoup
except ImportError:
    f1 = open("C:/Users/mtigr/Desktop/Apprentissage-Projets Programmation/Python/ZCHANGEIP/traceback.txt", "a")
    traceback.print_exc(file=f1)
    f1.close()

import time
import urllib.request as urllib2

while True:
    # Execute program
    print("hi")
    time.sleep(2)

Как видите, я использовал инструмент трассировки для печати в файл трассировки, и вот результат:

Traceback (most recent call last):
  File "C:\Users\mtigr\Desktop\Apprentissage-Projets Programmation\Python\ZCHANGEIP\loop.pyw", line 11, in <module>
    from stem import Signal
ModuleNotFoundError: No module named 'stem'
Traceback (most recent call last):
  File "C:\Users\mtigr\Desktop\Apprentissage-Projets Programmation\Python\ZCHANGEIP\loop.pyw", line 17, in <module>
    from stem.control import Controller
ModuleNotFoundError: No module named 'stem'
Traceback (most recent call last):
  File "C:\Users\mtigr\Desktop\Apprentissage-Projets Programmation\Python\ZCHANGEIP\loop.pyw", line 24, in <module>
    import requests
ModuleNotFoundError: No module named 'requests'
Traceback (most recent call last):
  File "C:\Users\mtigr\Desktop\Apprentissage-Projets Programmation\Python\ZCHANGEIP\loop.pyw", line 31, in <module>
    from bs4 import BeautifulSoup
ModuleNotFoundError: No module named 'bs4'

Программа сообщает мне, что импорт не распознается. Я не понимаю, почему, потому что я могу правильно выполнить программу с помощью команды:

python loop.pyw

В командной строке.

Я не понимаю, в чем проблема с импортом. Проблема действительно в 3 стебле импорта, запросах и Красивом супе. Я правильно установил каждый модуль и не знаю, зачем он это делает, не могли бы вы мне помочь? Нужно ли указывать папку для pythonw.exe? Можете ли вы вести меня?

Спасибо!

EDIT Я наконец нашел ответ. Когда я установил модули с помощью pip, он установил их в папку Miniconda3 (C: \ Users \ mtigr \ Miniconda3 \ Lib \ site-packages). Пакеты также должны быть установлены в каталоге Oyhton (C: \ Users \ mtigr \ AppData \ Local \ Programs \ Python \ Python36-32 \ Lib \ site-packages), поскольку pythonw фактически использует этот каталог, а не каталог Miniconda.

Так что есть ответ на случай, если у кого-то возникнут те же проблемы, что и у меня. Я нашел ответ, открыв python IDLE и попытавшись импортировать различные модули, и понял, что некоторые из них работают, а другие нет, поэтому мне кажется, что это блоха на ухо. Затем я проверил, откуда Python IDLE импортировал эти модули, и обнаружил, что это не тот каталог, в котором я их установил.

В любом случае, хорошего дня!

...