Windows 上的“ImportError:没有名为站点的模块”
Posted
技术标签:
【中文标题】Windows 上的“ImportError:没有名为站点的模块”【英文标题】:"ImportError: No module named site" on Windows 【发布时间】:2011-08-01 18:35:55 【问题描述】:我是第一次尝试安装 Python。我从 Python 网站下载了以下安装程序:Python 2.7.1 Windows Installer (Windows binary -- does not include source)。然后我运行安装程序,选择“所有用户”,一切都很好。我将 Python 安装到默认位置:
C:\Python27
接下来,为了测试 Python 是否安装正确,我导航到我的 Python 目录,并在 Windows CMD 提示符下执行python
。它返回给我以下错误:
ImportError: 没有名为站点的模块
当我执行python -v
时,我得到以下信息:
#安装 zipimport 钩子 导入 zipimport # 内置 #已安装 zipimport 挂钩 #ImportError:没有名为站点的模块 #clear 内置._ #clear sys.path #clear sys.argv #clear sys.ps1 #clear sys.ps2 #clear sys.exitfunc #clear sys.exc_type #clear sys.exc_value #clear sys.exc_traceback #clear sys.last_type #clear sys.last_value #clear sys.last_traceback #clear sys.path_hooks #clear sys.path_importer_cache #clear sys.meta_path #clear sys.flags #clear sys.float_info #restore sys.stdin #restore sys.stdout #restore sys.stderr #cleanup 主要 #cleanup [1] zipimport #cleanup [1] 信号 #cleanup [1] 异常 #cleanup [1] _警告 #清理系统 #cleanup 内置 #cleanup 整数:6 个未释放的整数 #cleanup 浮动
当我执行dir C:\Python27\Lib\site.py*
时,我得到以下信息:
Directory of C:\Python27\Lib 13/11/2010 20:08 20,389 site.py 1 File(s) 20,389 bytes 0 Dir(s) 694,910,976 bytes free
有什么想法吗?
【问题讨论】:
假设您没有更改默认安装位置,您的计算机上是否存在文件 C:/Python27/Lib/site.py? 是的,site.py 位于该文件夹中 @Mimminito:我很好奇(轻微地)为什么你消失了 9 个月,现在才接受我的回答,以及(非常)你是否发现了根本问题。 我目前遇到了这个问题。我不知道为什么,我已经在互联网上寻找解决方案。它一直说 ImportError: No module named site 不管我如何安装 python 和我在我的 PATH 中放入了什么。我想知道python实际上是如何加载site.py的。显然这是一个相对/绝对路径问题。如果我可以直接配置 python 的路径,而无需在黑暗中随机刺伤。 我遇到了这个问题。我是从 Cygwin 调用的,它具有PYTHONPATH
的类 unix 路径。我用export PYTHONPATH=$(cygpath -w $PYTHONPATH)
将它转换为windows 风格的路径,它工作正常。添加此注释以帮助可能遇到相同问题的其他人。
【参考方案1】:
您可以尝试Open Source Active Python Setup,它是一个用于 Windows 的出色 Python 安装程序。 您只需卸载您的版本并安装它...
【讨论】:
python.org 安装程序就好了 我在笔记本电脑上安装了 Active Python,安装得很好。但它在我的电脑上不起作用,我仍然得到同样的错误【参考方案2】:我已经为自己研究了将近一天的这个问题,终于有了突破。试试这个:
设置 PYTHONPATH / PYTHONHOME 变量
右键单击开始菜单中的计算机图标,转到属性。
在左侧选项卡上,转到高级系统设置。在出现的窗口中,转到高级选项卡,然后在底部单击环境变量。单击用户变量列表并开始键入 Python,然后重复 系统变量,以确保您没有为 PYTHONPATH 或 PYTHONHOME 错误设置变量。接下来,添加新变量(我是在 System 而不是 User 中添加的,尽管它也可能对 User 有效):PYTHONPATH,设置为 C:\Python27\Lib。 PYTHONHOME
,设置为 C:\Python27。
希望这会有所帮助!
【讨论】:
您还需要将 %PYTHONHOME% 附加到您的路径变量中才能正常工作。 啊哈!这应该是问题的答案。对我来说,这是一个设置为无效路径的 PYTHONHOME 变量......删除了它,现在它可以工作了!似乎 Steam 的 Alien Swarm 模组添加了这一点。 不设置任何PYTHONPATH/PYTHONHOME
变量对于 Python 定位 Lib
文件夹中的 site.py
模块是必要的。这个答案充其量是一种解决方法。
环境变量是一场噩梦。我责怪 Linux。
确保您没有同时安装两个 Python 版本。例如,如果 Python 2.7 位于 %PATH% 中,并且 Python3 设置为 PYTHONHOME,这可能会使解释器混乱。【参考方案3】:
确保您的 PYTHONHOME 环境变量设置正确。如果 PYTHONHOME 指向无效位置或您尝试运行的另一个 Python 安装,您将收到此错误。
试试这个:
C:\>set PYTHONHOME=C:\Python27
C:\>python
使用
setx PYTHONHOME C:\Python27
为后续命令提示永久设置此项
【讨论】:
使用setx PYTHONHOME C:\Python27
为后续命令提示永久设置此项。否则每次都要使用set命令。【参考方案4】:
您是否尝试从 Cygwin 运行 Windows Python?我有同样的问题。 Cygwin 中的 Python 无法导入站点。 Cmd 中的 Python 工作正常。
看起来您需要确保通过cygwin -aw
运行 PYTHONHOME 和 PYTHONPATH 以使它们成为 Windows 路径。另外,python 似乎使用了一些不正确的路径。
我想我需要通过 cygwin 安装 python 才能让它工作。
【讨论】:
您好,这对您来说可能不是问题,但如果其他人遇到此问题,请参阅我对主要问题的评论。基本上你需要将PYTHONPATH
转换为带有export PYTHONPATH=$(cygpath -w $PYTHONPATH)
的windows 样式路径。【参考方案5】:
快速解决方案:设置 PYTHONHOME 和 PYTHONPATH 并在 PATH 中包含 PYTHONHOME
例如,如果您安装到 c:\Python27
set PYTHONHOME=c:\Python27
set PYTHONPATH=c:\Python27\Lib
set PATH=%PYTHONHOME%;%PATH%
确保 PYTHON* 变量上没有尾随“\”,这似乎破坏了它。
【讨论】:
如果在 Windows 10 上,现在是: setx PYTHONHOME "C:\Python27" setx PYTHONPATH "C:\Python27\Lib" setx PATH "%PYTHONHOME%;%PATH%" 这在带有 Python 3.6 的 Windows 7 上对我很有效【参考方案6】:对我来说,这是因为我安装了 2 个版本的 python - python 27 和 python 3.3。这两个文件夹都设置了路径变量,因此存在这个问题。为了解决这个问题,我将 python27 移动到临时文件夹,因为我对 python 3.3 没问题。因此,请检查 PATH、PYTHONHOME 等环境变量,因为这可能是个问题。谢谢。
【讨论】:
【参考方案7】:我在安装 Windows Python 和 Cygwin Python 并尝试从 Cygwin 运行 Cygwin Python 后遇到了这个问题。我通过export
ing PYTHONHOME=/usr/ 和 PYTHONPATH=/usr/lib/python2.7 解决了这个问题
【讨论】:
【参考方案8】:如果有人发现它在非管理员用户下仍然无法运行:
示例错误:
ImportError: No module named iso8601
您需要为 easy_install 设置“--always-unzip”选项:
easy_install --always-unzip python-keystoneclient
它将解压缩您的 egg 文件并允许导入以查找 em。
【讨论】:
【参考方案9】:我对 slckin 的回答投了赞成票。我的问题是我深思熟虑并在路径周围添加了双引号。我删除了所有三个变量中的双引号:PYTHONHOME、PYTHONPATH 和 PATH。请注意,这是在 cmd 或 bat 文件中为其他工具设置环境。但是,双引号在图标设置中可能很有用。打字
设置
揭示了路径中的引号并没有按预期删除。我还缩短了 PATH,使其长度小于 256 个字符。
【讨论】:
【参考方案10】:对于 Windows 10(跟进@slckin 的回答),这可以通过命令行设置:
setx PYTHONHOME "C:\Python27"
setx PYTHONPATH "C:\Python27\Lib"
setx PATH "%PYTHONHOME%;%PATH%"
【讨论】:
我会从不使用setx PATH "%PYTHONHOME%;%PATH%"
,因为它将用户PATH
设置为用户和系统路径的总和。在本地可以(使用set
)但不使用setx
【参考方案11】:
我在安装 python 2.7.11 时遇到了同样的问题ImportError: No module named site
最初我有 Python2.5,PYTHONHOME 路径设置为 Python2.5。
我将它重命名为C:\Python27\
,它解决了这个问题。
【讨论】:
【参考方案12】:我有一个严重依赖 Python 的应用程序,并在新版本发布时与 python 2.7.x 保持同步。一切都很好,直到 2.7.11 出现同样的“No module named site
”错误。我已将 PYTHONHOME 设置为 c:\Python27
并且它正在工作。但谜团仍然存在,为什么现在需要它,而以前的版本没有。而且,如果需要,为什么安装程序不设置这个变量?
【讨论】:
【参考方案13】:我遇到了同样的问题。我的解决方案是修复 Python 安装。 (这是一个新安装,所以我没想到会出现问题,但现在它已经解决了。)
修复(Windows 7):
-
进入控制面板 -> 程序 -> 程序和功能
单击安装的 Python 版本,然后按卸载/更改。
按照说明修复安装。
【讨论】:
【参考方案14】:找到 site.py 并将其路径添加到 PYTHONPATH 中。这将解决您的问题。
【讨论】:
它不见了...这可以解释。谢谢 但是,如果只有site.pyo
存在(即来自RenPy 游戏),那么还必须调用python -O
而不是只调用python
。没有环境变量可以帮助您。【参考方案15】:
从 PyYAML 主页安装 yaml:http://www.pyyaml.org/wiki/PyYAML
为您的操作系统和 Python 选择合适的版本。
【讨论】:
【参考方案16】:在我的情况下,问题是另一个 site.py 文件,由于 PATH 设置,该文件比 Python\Lib 中的文件更早解决。
环境:Windows 10 Pro,Python27。
我的桌面安装了 pgAdmin,其中包含文件 C:\Program Files (x86)\pgAdmin\venv\Lib\site.py。因为 PATH 环境变量比 Python 更早拥有 pdAdmin 的 home(显然一开始是个坏主意),所以首先找到了 pgAdmin 的 site.py。
解决这个问题我所要做的就是在 PATH 中将 pgAdmin 的家移动到比 Python 晚的位置
【讨论】:
【参考方案17】:安装过程中首先卸载python并再次安装最新版本使用自定义安装并标记所有用户复选框并设置安装路径C:\ Python 3.9 并在对我有用的环境变量中设置 PYTHON_HOME 值 C:\Python 3.9
【讨论】:
以上是关于Windows 上的“ImportError:没有名为站点的模块”的主要内容,如果未能解决你的问题,请参考以下文章
ImportError:没有名为 virtualenv 的模块