我正在全新安装的 OpenSUSE 13.2 tumbleweed 上运行,它附带了 python2.7 和 python3.4。我在运行任何基于 python 的库时不断遇到以下错误ImportError: No module named site
。这个问题的所有答案都涉及将 PYTHONPATH 和/或 PYTHONHOME 环境变量设置为某个路径,但我已经尝试了我能想到的所有路径组合,但没有任何效果。一个想法?
我遇到问题的库是 youtube-dl 和 flexget。
答案1
这是你的发行版的工作,让库管理正确 - 即使对于像 python 这样的东西来说,它们似乎不遗余力地使它变得困难。
使用 运行 python 2 程序
#!/usr/bin/python2
,使用#!/usr/bin/python3
.或者将它们称为python2 script
或python3 script
。不要使用#!/usr/bin/env python
,即使在有两条蟒蛇之前,这也是一个愚蠢的糟糕建议。尽可能使用发行版的 Python 库的打包版本。即使您必须等待整整一周才能打包 1.2.0.0.0.0.3 版本,而您却停留在古老的 1.2.0.0.0.0.2 上。或者几个月。升级后的库值得冒弄乱系统的风险,这是极其罕见的。不使用或“使用另一个库”几乎总是比“手动安装此库弄乱我的系统”更好的答案
如果您必须手动安装库,调整说明以适合您的系统。这些说明可能(大部分)适用于开发人员自己的系统,但它们会对如何设置做出大量假设 - 其中大多数对于您的系统可能是错误的。这意味着彻底阅读发行版的相关文档和注释,并了解系统的 python 环境及其工作原理。
即使您的发行版在 python 库管理方面做得一切都正确,但不调整说明以适应您的系统可能会弄乱您的 python 环境。对于 python(和 ruby)来说,这是一个令人遗憾的常见结果,而对于任何其他编程或脚本语言来说,这是不常见的。有很多不好的建议,本质上是告诉你忽略发行版或操作系统,并将其视为 Python 世界中需要解决的障碍(而不是要使用和使用的工具)。