首页 > 解决方案 > 由于导入,我的 Python 程序在使用 pythonw.exe 执行时似乎不起作用

问题描述

我正在尝试通过 pythonw.exe 程序启动一个基本的 python(loop.pyw 文件)程序,只是为了在我的任务管理器中查看 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 指定一个文件夹吗?你能指导我吗?

谢谢!

编辑 我终于找到了答案。当我使用 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从哪里导入这些模块,我发现它与我安装它们的目录不同。

不管怎样,祝你有美好的一天!

标签: pythonimportpythonw

解决方案


推荐阅读