python如何快速导入未安装模块_Python可以导入未安装的模块

首先运行python -c“import site; print(site.getsitepackages())”.它会打印一个这样的列表:

['/XXX/something/site-packages']

通常,此列表中有一个路径,它指向pip安装脚本的目录.如果你很好奇,你可以进入它:ls / XXX / something / site-packages /.

更有趣的是,当您使用开发人员安装(a.k.a.pip install -e)时,pip会在该目录中放置一个“链接”文件. “链接”文件以原始项目命名,末尾带有.egg-link扩展名.

所以你可能在该目录中有一个cool_script.egg-link文件.如果您尝试将其打印出来,您应该会发现其内容列出了模块的原始文件系统位置.就像是:

$cat /XXX/something/site-packages/cool_script.egg-link

/home/me/fake/path/cool_script/

.

这就是pip记录它在开发人员模式下安装的东西,但不是Python实际上知道如何找到你的模块(这本来太简单了,对吧?:-)).

Python不了解.egg-link文件,但是它会读取site-packages目录中的所有.pth文件,以获取sys.path(*)的其他路径.因此,为了能够导入开发人员模式安装,pip将所有他们的路径写入一个通常称为easy-install.pth的.pth文件中(因为旧的易安装工具实际上是该技术的先驱).如果您打印出该文件,您将获得在开发人员模式下安装的所有项目路径的列表:

$cat /XXX/something/site-packages/easy-install.pth

/home/me/fake/path/cool_script/

/home/me/another/project/

您可以检查确实easy-install.pth中列出的所有路径确实已添加到您的sys.path中.

(*)从技术上讲,读取那些.pth文件的Python部分是通常在启动时自动导入的站点模块.但是,有一个选项可以禁用站点模块,例如使用python -S.在这种情况下,您将看到sys.path既不包含site-packages目录,也不包含开发人员安装路径.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值