8

对我来说,它位于 C:\Python33\libs。

供参考 - 这与 C:\Python33\Lib不是同一个文件夹 - 请注意大写和缺少“s”。

在我正在使用的一台计算机上,我只是将一个 .py 文件放入 libs 文件夹中,并且可以像库/模块一样导入和使用它(对不起,我不太了解术语),无论我的项目在哪里正在研究的是。

但是,在尝试在另一台机器上复制它时,这是行不通的。尝试导入只会给出“没有名为 X 的模块”错误。

所以,显然我误解了 libs 文件夹的用途,以及它与 Lib 文件夹的不同之处。

那么,究竟有什么区别呢?

4

2 回答 2

8

如果您比较 libs/ 与 Lib/ ,您会注意到后者充满了 *.py 文件,而前者有 *.lib 文件。使用文本编辑器进行进一步调查将显示 *.py 文件是人类可读的(我希望如此),而 *.lib 文件则不是。

这就是真正的区别。如果您想了解更多,.lib 文件是静态链接库,用于构建 .dll、C 扩展和所有这些好东西。如果您对此感兴趣,请前往兔子 洞。

关于您的问题的实质:您是否应该能够将模块放在那里并能够导入它们?并不真地。这是该文件夹包含在您的路径中的副作用。从模块文档

当导入名为 spam 的模块时,解释器首先搜索具有该名称的内置模块。如果没有找到,它会在变量 sys.path 给出的目录列表中搜索名为 spam.py 的文件。sys.path 从这些位置初始化:

  • 包含输入脚本的目录(或当前目录)。
  • PYTHONPATH(目录名称列表,与 shell 变量 PATH 具有相同的语法)。
  • 安装相关的默认值。

各种安装方法会修改 %PATH% 或 %PYTHONPATH% 所以我不能告诉你具体在哪里看;在我的 windows 盒子上,python 安装程序为我修改了 %PATH%,所以你应该先看看那里。值得注意的是,我的路径不包括Python33/libs/ 所以我不希望它默认存在。

于 2013-10-10T04:05:12.947 回答
0

只看我的(Windows 7)/libs 似乎是本机代码库(*.lib)与 /Lib 中的直接 python 库。自述文件还提到了一个配置标志:

--with-libs='libs':将“libs”添加到 python 解释器链接的 LIBS。

可能会或可能不会在不同的安装/平台上设置。

这不是一个真正的答案。希望对此有更深入了解的人会进一步解释-只是信息太多,无法发表评论。

于 2013-10-10T03:48:59.313 回答