Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3中的导入路径问题_Python_Python Import - Fatal编程技术网

Python 3中的导入路径问题

Python 3中的导入路径问题,python,python-import,Python,Python Import,我对Python3中的import语句有问题。我正在阅读一本书(Python 3面向对象),并且具有以下结构: parent_directory/ main.py ecommerce/ __init__.py database.py products.py payments/ __init__.py

我对Python3中的import语句有问题。我正在阅读一本书(Python 3面向对象),并且具有以下结构:

parent_directory/
       main.py
       ecommerce/
             __init__.py
             database.py
             products.py
             payments/
                    __init__.py
                    paypal.py
                    authorizenet.py
在paypal.py中,我试图使用Database.py中的数据库类。所以我试了一下:

from ecommerce.database import Database
我得到这个错误:

ImportError: No module named 'ecommerce'
SystemError: Parent module '' not loaded, cannot perform relative import
因此,我尝试使用这两种导入语句:

from .ecommerce.database import Database

from ..ecommerce.database import Database
我得到了这个错误:

ImportError: No module named 'ecommerce'
SystemError: Parent module '' not loaded, cannot perform relative import
我做错了什么或错过了什么


谢谢你抽出时间

将父目录添加到Python的搜索路径中。例如:

import sys
sys.path.append('/full/path/to/parent_directory')

或者,您可以将
parent\u目录
添加到环境变量
PYTHONPATH

这意味着如果我想将parent\u目录移动到其他地方,或者如果我想将“ecommerce”文件夹作为一个包分发,它将不起作用,对吗?导入位于父目录中的类的任何其他方法?通常,如果您分发,即人们使用
pip
进行安装,则您的包最终将位于
站点包中,默认情况下位于PYTHONPATH中。对于开发,只需创建一个目录
dev
或类似的目录,将它放在PYTHONPATH上一次,然后将所有项目放在那里。