在python的学习使用中,我们有时需要对一个常见的自定义函数在不同的工程下使用,但是我们又不想要将这个函数或函数所在的.py文件复制到我们的每个工程路径下,这样的问题会带来版本的同步问题,即我们想要一个好的公用的自定义的工具库,用于在常见场景下的调用。
一种可行的方法如下:
在一个路径下(path)维护一个包含自己的常用库的文件,通过sys.path.append(path)即可将这个环境引入,即可调用文件路径下的函数,经过验证,这是可行的,但是带来的问题是,在编程过程中,编译器无法先行找到这个路径,即无法通过Tab键自动的找到这个函数的全名,同时无法通过Go to去到该函数的具体实现上,这显然不利于我们平时的维护。
另一种方式如下:
通过以下操作,即可打印出系统默认的搜索路径,我的结果如下:
for pat in sys.path:
print(pat)
E:\Python_test\SSVEP
E:\Python_test\SSVEP
F:\ProgramData\Anaconda3\envs\ssvep\python36.zip
F:\ProgramData\Anaconda3\envs\ssvep\DLLs
F:\ProgramData\Anaconda3\envs\ssvep\lib
F:\ProgramData\Anaconda3\envs\ssvep
C:\Users\MSI-PC\AppData\Roaming\Python\Python36\site-packages
F:\ProgramData\Anaconda3\envs\ssvep\lib\site-packages
F:\ProgramData\Anaconda3\envs\ssvep\lib\site-packages\win32
F:\ProgramData\Anaconda3\envs\ssvep\lib\site-packages\win32\lib
F:\ProgramData\Anaconda3\envs\ssvep\lib\site-packages\Pythonwin
E:\Python_test\Neural_Net\
在其中我们可以找到一条通用的路径,即
'C:\\Users\\MSI-PC\\AppData\\Roaming\\Python\\Python36\\site-packages'
因此我们可以把自己的自定义库文件放置在这个路径下,即可实现在不同的工程中很方便的引用其中的函数并进行维护,这跟我们调用其他的库的函数操作是一样的。