我正在尝试构建一组自定义函数,可以在我的研究项目的任何.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
答案 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