当前位置:   article > 正文

python import自己创建的.py文件-python 将自己写的py文件作为模块导入

python import py

在实战中我们往往需要导入自己写的一个.py文件,而且不是在当前目录下的文件,是不是可以作为模块直接 import 过来呢?并不是,我们必须让 Python 解释器能够找到你写的模块。主要有以下两种方法。

1. sys.path.append( )告知解释器

假设我们自己的python文件名为 inferSingleDocVec.py,那么这个文件可以作为一个模块被引入,现在Python 解释器并不知道我写了这么一个文件,所以我得先告诉它。

>>> import sys

>>> sys.path.append("~/data/word2vec/doc2vec")

>>> import inferSingleDocVec

用这种方式就是告诉 Python 解释器,我写的那个文件在哪里。在这个告诉方法中,也用了一个模块 import sys,不过由于 sys 模块是 Python 被安装的时候就有的,所以不用特别告诉,Python 解释器就知道它在哪里了。代码可以放入python文件开头部分,也可以在交互情况下使用,要注意的是,在交互模式下,如果关闭了,然后再开启,必须重新告知。

2. 放入sys.path路径下

为了让我们自己写的模块能够被 Python 解释器知道,需要用sys.path.append("~/data/word2vec/doc2vec/inferSingleDocVec.py")。其实,在 Python 中,所有模块都被加入到了 sys.path 里面了。用下面的方法可以看到模块所在位置:

>>> import sys

>>> import pprint

>>> pprint.pprint(sys.path)

["",

"/usr/local/python27/lib/python2.7/site-packages/distribute-0.7.3-py2.7.egg",

"/usr/local/python27/lib/python2.7/site-packages/setuptools-21.0.0-py2.7.egg",

"/usr/local/python27/lib/python2.7/site-packages/Pyro4-4.43-py2.7.egg",

"/usr/local/python27/lib/python2.7/site-packages/serpent-1.12-py2.7.egg",

"/usr/local/python27/lib/python27.zip",

"/usr/local/python27/lib/python2.7",

"/usr/local/python27/lib/python2.7/plat-linux2",

"/usr/local/python27/lib/python2.7/lib-tk",

"/usr/local/python27/lib/python2.7/lib-old",

"/usr/local/python27/lib/python2.7/lib-dynload",

"/usr/local/python27/lib/python2.7/site-packages"]

凡在上面列表所包括位置内的 .py 文件都可以作为模块引入。所以另外一种简单的方式就是将文件复制到该目录下。

>>> cp /data/word2vec/doc2vec/inferSingleDocVec.py /usr/local/python27/lib/python2.7/site-packages/

一般来说方法一就够用了,这次是因为要在c中调用python模块,因此用了方法二,方法二需要root权限。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家小花儿/article/detail/746486
推荐阅读
相关标签
  

闽ICP备14008679号