python添加模块搜索路径_自定义模块搜索路径

一、设置方法

设置自定义模块路径时,路径必须是模块的父文件夹,而最终效果都是在sys.path中追加路径

一共四种方法进行设置

A、代码中sys.path.append('path-to-packages')

import sys

sys.path.append('path-to-packages')路径中使用双斜杠或反斜杠

必须使用绝对路径,或者使用工具将相对路径转化为绝对路径

sys.path路径中的pth文件不一定会被解析,除非属于site-packages路径

site-packages路径查看方法

import site

print(site.getsitepackages())

B、代码中site.addsitedir

import site

site.addsitedir('')路径中使用双斜杠或反斜杠

可以使用相对路径

路径会被设置为site-packages路径,然后添加到sys.path

能够立即解析路径中的pth文件

如果多次执行site.addsitedir,会再对文件内容进行再次加载,如果在这个过程中对pth进行编辑,添加进新的新路径会被添加到sys.path中,但是删除pth中的路径,不能立即影响到sys.path

C、设置系统环境变量pythonpath

或者在命令行中

set pythonpath=path-to-packages路径中使用单斜杠或反斜杠,不能有引号,所以路径自然不能有空格

路径会被添加到sys.path

不会解析目录中的pth文件

注意:虽然在代码中可以修改环境变量

os.environ["pythonpath"]='path-to-packages'

但是并不会自动影响到sys.path,因此这种方式无效

另外,os.environ["path"]是系统的path变量,而系统的path变量跟sys.path没有半毛钱关系

D,使用pth文件

Python在遍历site-packages路径过程中,如果遇到一个.pth 文件,就会将文件中的路径加入到 sys.path 中,作为模块搜索路径。pth文件里面的路径,一行一个。

pth文件中的路径必须实际存在,可以是相对路径,也可是绝对路径

路径中可以使用单斜杠,双斜杠,反斜杠

通过pth文件添加的搜索路径下的pth文件不起作用,也就是不能套娃

pth文件中路径也支持zip文件

pth文件中使用python代码

pth 文件中可以添加 python 代码,注意的是完整的代码要在一行当中,隔行不行,而且要以 import 开头,例如:

import os

print(os)

上面是打印不出 os 的路径的,正确的做法是:

import os;print(os);import sys;print(sys.executable)

import os;print(os.path)

二、从zip中加载模块

python支持从zip中加载模块

sys.path.append("E:\\WorkSpace\\\Perri3\\bin\\x64.zip")

但是搜索路径中的zip不会自动被添加到模块目录中,必须显式添加

zip文件中的pyc和pyo都可以被正常读取,但是无法读取pyd文件

三、C#中设定

如果是用pythonnet,在c#进行如下设置

PythonEngine.PythonHome += @".\PythonRuntime";

作用与site.addsitedir相同,此文件夹下的pth文件会被解析

PythonRuntime下面必须有 DLLs和Lib

  • 0
    点赞
  • 0
    收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:游动-白 设计师:我叫白小胖 返回首页
评论
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值