python:如何/在哪里放置一个简单的库在我电脑上的一个著名位置
我需要把一个Python脚本放在我电脑的某个地方,这样在另一个文件里我就可以使用它。请问我该怎么做,放在哪里比较好?还有,Python的文档里哪里可以找到相关的学习内容?我还是个初学者,平时也不怎么用Python。
库文件:MyLib.py 放在一个大家都知道的地方
def myfunc():
....
另一个文件 SourceFile.py 放在其他地方,不需要知道 MyLib.py 在哪里:
something = MyLib.myfunc()
7 个回答
没有人提到过在site-packages文件夹里使用.pth文件来隐藏文件的位置。
一般来说,Python教程中的模块部分是初学者了解这个主题的好地方。它讲解了如何编写自己的模块以及应该把它们放在哪里,不过我在这里简单总结一下你的问题:
你的Python安装里有一个叫做site-packages
的文件夹;你放在这个文件夹里的任何Python文件都可以在你写的任何脚本中使用。比如,如果你把文件MyLib.py
放在site-packages
文件夹里,那么在你的脚本中你可以这样写:
import MyLib
something = MyLib.myfunc()
如果你不确定Python安装在哪里,可以参考Stack Overflow上的问题我该如何找到我的Python site-packages目录的位置,这会对你有帮助。
另外,你还可以修改sys.path,这是一个目录列表,Python在使用import
语句时会在这些目录中查找库。你的site-packages
目录已经在这个列表里了,但你也可以自己添加(或删除)条目。比如,如果你想把MyLib.py
文件放在/usr/local/pythonModules
,你可以这样写:
import sys
sys.path.append("/usr/local/pythonModules")
import MyLib
something = MyLib.myfunc()
最后,你还可以使用PYTHONPATH环境变量来指定MyLib.py
所在的目录。
不过,我建议你还是把MyLib.py
文件放在site-packages
目录里,就像上面说的那样。
选项 1:
把你的文件放在:
<你的Python安装路径>/Lib/site-packages/myfile.py
在你的代码中加上这个:
import myfile
优点:简单
缺点:会让site-packages变得杂乱
选项 2:
把你的文件放在:
/Lib/site-packages/mypackage/myfile.py创建一个空的文本文件,命名为:
<你的Python安装路径>/Lib/site-packages/mypackage/__init__.py
在你的代码中加上这个:
from mypackage import myfile
优点:可以减少site-packages的杂乱,把你的文件集中在一个目录里
缺点:稍微多一点工作;site-packages里还是会有些杂乱。对于稳定的项目来说这没什么问题,但对于开发工作来说可能不太合适,如果Python安装在共享驱动上,这种方法可能就行不通了。
选项 3:
把你的文件放在你喜欢的任何目录里
把那个目录添加到PYTHONPATH环境变量中
然后像选项1或选项2那样继续,只需把你刚创建的目录替换为<你的Python安装路径>/Lib/site-packages/
优点:可以把开发代码放在site-packages目录之外
缺点:设置起来稍微复杂一点
这是我通常在开发工作中使用的方法