功能简单,如何添加到全局路径?

时间:2018-10-07 12:09:27

标签: python function path call pythonpath

我正在尝试构建一组自定义函数,可以在我的研究项目的任何.py文件中引用。

如果我在D:\_coding\pyfun中放置了一个非常简单的函数,那么如何在以后的所有脚本中让Python引用此目录-这样我才能调用其中的函数?如果重要的话,我的IDE是PyCharm。

例如 add.py保存在D:\_coding\pyfun

def add(a, b):
    return a+b

现在,当我使用Python进行调用时,它当然无法识别添加

>     add(1,3)
>     Traceback (most recent call last):
>       File "<input>", line 1, in <module>
>     NameError: name 'add' is not defined

2 个答案:

答案 0 :(得分:0)

您可以导入。例如:

    Traceback (most recent call last):
  File "search.py", line 7, in <module>
    from pymongo.mongo_client import MongoClient
  File "/home/user/anaconda3/lib/python3.6/site-packages/pymongo/__init__.py", line 90, in <module>
    from pymongo.common import (MIN_SUPPORTED_WIRE_VERSION,
  File "/home/user/anaconda3/lib/python3.6/site-packages/pymongo/common.py", line 21, in <module>
    from pymongo.auth import MECHANISMS
  File "/home/user/anaconda3/lib/python3.6/site-packages/pymongo/auth.py", line 33, in <module>
    from bson.binary import Binary
  File "/home/user/anaconda3/lib/python3.6/site-packages/bson/binary.py", line 21, in <module>
    from bson.py3compat import PY3, binary_type
ImportError: cannot import name 'binary_type'

请注意,解释器的工作目录必须与$ python3 Python 3.6.6 (default, Sep 12 2018, 18:26:19) [GCC 8.0.1 20180414 (experimental) [trunk revision 259383]] on linux Type "help", "copyright", "credits" or "license" for more information. >>> from add import add >>> add(1, 3) 4文件所在的目录相同。

如果不是这种情况,则首先需要通过添加(空)add.py文件来指定目录为模块。

您还可以在__init__.py环境变量中添加add.py文件所在的目录。这是一个由冒号分隔的字符串,其中包含要导入模块时Python解释器将查找的路径。

答案 1 :(得分:0)

如果您不想编辑PYTHONPATH变量,则可以在python脚本本身中手动添加文件夹,如下所示:

import sys
sys.path.append('D:\_coding\pyfun')
import Yourpackage.pyfile