首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python基础教程 让模块可用

10.1.3 让模块可用

1. 将模块放在正确的位置

将模块放在正确的位置很容易,只需找出Python解释器到哪里去查找模块,再将文件放在这个地方即可。在你使用的计算机中,如果Python解释器是管理员安装的,而你有没有管理员权限,就可能无法将模块保存到Python使用的目录中。在这种情况下,需要采用随后要介绍的另一种解决方案:告诉解释器去哪里查找。

你可能还记得,可在模块sys的变量path中找到目录列表(即搜索路径)。

>>> import sys, pprint

>>> pprint.pprint(sys.path)

['C:\\Python35\\Lib\\idlelib',

'C:\\Python35',

'C:\\Python35\\DLLs',

'C:\\Python35\\lib',

'C:\\Python35\\lib\\plat-win',

'C:\\Python35\\lib\\lib-tk',

'C:\\Python35\\lib\\site-packages']

提示 如果要打印的数据结构太大,一行容纳不下,可使用模块pprint中的函数pprint(而不是普通print语句)。 pprint是个卓越的打印函数,能够更妥善地打印输出。

当然,你得到的打印结果可能与这里显示的不完全相同。这里的要点是,每个字符串都表示一个位置,如果要让解释器能够找到模块,可将其放在其中任何一个位置中。虽然放在这里显示的任何一个位置中都可行,但目录site-packages是最佳的选择,因为它就是用来放置模块的。请在你的计算机中查看sys.path,找到目录site-packages,并将代码清单10-4所示的模块保存到这里,

但要使用另一个名称,如another_hello.py。然后,尝试像下面这样做:

>>> import another_hello

>>> another_hello.hello()

Hello, world!

只要模块位于类似于site-packages这样的地方,所有的程序就都能够导入它。

2. 告诉解释器到哪里去查找

将模块放在正确的位置可能不是合适的解决方案,其中的原因很多。

 不希望Python解释器的目录中充斥着你编写的模块。

 没有必要的权限,无法将文件保存到Python解释器的目录中。

 想将模块放在其他地方。

最重要的是,如果将模块放在其他地方,就必须告诉解释器到哪里去查找。前面说过,要告诉解释器到哪里去查找模块,办法之一是直接修改sys.path,但这种做法不常见。标准做法是将模块所在的目录包含在环境变量PYTHONPATH中。

环境变量PYTHONPATH的内容随操作系统而异(参见旁注“环境变量”),但它基本上类似于sys.path,也是一个目录列表。

环境变量

环境变量并不是Python解释器的一部分,而是操作系统的一部分。大致而言,它们类似

于Python变量,但是在Python解释器外面设置的。如果你使用的是bash shell(在大多数类

UNIX系统、 macOS和较新的Windows版本中都有),就可使用如下命令将~/python附加到环境

变量PYTHONPATH末尾:

export PYTHONPATH=$PYTHONPATH:~/python

如果要对所有启动的shell都执行这个命令,可将其添加到主目录中的.bashrc文件中。关

于如何以其他方式编辑环境变量,请参阅操作系统文档。

除使用环境变量PYTHONPATH外,还可使用路径配置文件。这些文件的扩展名为.pth,位于一些特殊目录中,包含要添加到sys.path中的目录。有关这方面的详细信息,请参阅有关模块site的标准库文档。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190107G05Z9J00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券