Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/349.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
Python2.7中存在导入错误,但Python3中没有_Python_Python 3.x_Python Import_Python 2.x - Fatal编程技术网

Python2.7中存在导入错误,但Python3中没有

Python2.7中存在导入错误,但Python3中没有,python,python-3.x,python-import,python-2.x,Python,Python 3.x,Python Import,Python 2.x,我在本地编写了一个python包,其结构如下 package ├── __init__.py ├── __main__.py ├── tests │   ├── __init__.py │   └── package_tests.py └── package ├── __init__.py ├── package.py 当从项目的根目录(树中第一个包的父目录目录)在Python3 virtualenv中使用python-m包运行时,这非常有效 但是,当在Python2.7 vi

我在本地编写了一个python包,其结构如下

package
├── __init__.py
├── __main__.py
├── tests
│   ├── __init__.py
│   └── package_tests.py
└── package
    ├── __init__.py
    ├── package.py
当从项目的根目录(树中第一个
包的父目录
目录)在Python3 virtualenv中使用
python-m包
运行时,这非常有效

但是,当在Python2.7 virtualenv中运行时,我会在
\uuuu main\uuuuuuuuuuuuuupy
脚本中得到一个
ImportError
,因为它试图从
package.py

\uuuu main\uuuuu.py

import sys
from package.package.package import foo, bar


    def main(args):
        f = foo(args)
        bar(f)


    if __name__ == "__main__":
        main(sys.argv[1:])
错误:

ImportError:没有名为package的模块

我需要做哪些更改才能使其与两者兼容


(很明显,这个包实际上并不是包)

尽管我寻找了这么长时间的解释,但在发布了这个问题后,我立即找到了解决方案

在查看之后,我发现我只需要使用相对导入

因此,我的
\uuuuu main\uuuuu.py
中的导入行变为
from.package.package import foo,bar

您是否尝试在两种python中打印
sys.argv
?有什么不同吗?尝试将内部文件夹包重命名为其他名称,然后查看它是否适用于bothsys。argv在两个版本中都运行良好,是相对导入造成了问题@OlvinRoght