问题描述
我需要在我的python项目上执行函数的导入。
我知道上面有几十个类似的问题,但不幸的是,我找不到适合我的解决方案,因为答案要么太具体,要么太笼统,要么就是难看的黑客(比如用绝对路径操作)。
下面是我的文件夹结构:
PythonClient:.
│ .gitignore
│ des.py
│ des_test.py
│ des_var2.py
│ gui.py
│ index.py
│ __init__.py
│
├───diffie_hellman
│ │ diffie_hellman.py
│ │ diffie_hellman_test.py
│ │ __init__.py
│ │
│ └───__pycache__
│ diffie_hellman.cpython-35.pyc
│
├───hashes
│ │ collision.py
│ │ hash_function.py
│ │ __init__.py
│ │
│ └───__pycache__
│ hash_function.cpython-35.pyc
│ __init__.cpython-35.pyc
│
└───__pycache__
des.cpython-35.pyc
des_var2.cpython-35.pyc
我需要从./diffie_hellman/diffie_hellman.py
导入./hashes/hash_function.py
。
./hashes/hash_function.py
文件包含唯一名为hash_function
的函数。
我尝试了相当多的方法来执行导入,但就是做不到。我总是得到一个
当我在导入语句中使用.
时(即from .hashes.hash_function
)
或者我得到这个:
每个__init__.py
文件为空。
以下是我的尝试列表:
from hashes import hash_function
from hashes.hash_function import hash_function
from .hashes.hash_function import hash_function
from ..hashes.hash_function import hash_function
import hashes
import hash_function
from .. import hash_function
from . import hash_function
from PythonClient.hashes.hash_function import hash_function
您能帮我解决我的问题并了解如何处理此类导入吗?
ps:此处找不到解决方案stackoverflow.com/questions/14132789/
推荐答案
您有一个__init__.py
这一事实告诉我,它本身就是一个库。做from PythonClient.hashes.hash_function import hash_function
。我总是喜欢完全合格的路径。
您还需要安装库,然后才能从中导入。这需要在您的主目录中有一个setup.py文件。在此之后,您应该通过pip安装您的库以进行测试,例如`pip install-e..
这篇关于如何在PYTHON中从父文件夹导入函数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!