首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Python导入不正确的模块(同名),VSC

Python导入不正确的模块(同名),VSC
EN

Stack Overflow用户
提问于 2019-09-17 00:30:38
回答 1查看 166关注 0票数 0

我有两个模块,在下面列出的两个不同环境中都名为connection.py。这两个包含connection.py的文件夹都在我的PYTHONPATH系统环境变量中。

但是,如果spectest_connection.py没有放在bvbot的上面,spec的test_connection.py会尝试从bvbot的connection.py导入。

如果在cmd中,我可以通过将spec的路径移到bvbot的路径上来解决这个问题。但是,在Visual Studio Code中,spec的test_connection.py仍然是从bvbot的connection.py导入的。

感兴趣的两个环境是:

代码语言:javascript
运行
复制
C:\Users\You_A\Desktop\2016Coding\VirtualEnviroments\spec\spec_trading
C:\Users\You_A\Desktop\2016Coding\VirtualEnviroments\bvbot\Legacy_bvbot

上述spec路径的结构:

代码语言:javascript
运行
复制
src/
    spec_trading/
        __init__.py
        connection.py
tests/
    __init__.py
    connection.py

规范test_connection.py:

代码语言:javascript
运行
复制
import pytest

from connection import Connection, OandaConnection


class TestConnection:
    def test_poll_timeout(self):
        connection = Connection()
        timeout = 10.0
        connection.set_poll_timeout(timeout)
        assert connection.poll_timeout == timeout

我在这里做错了什么?如何才能在不手动修改系统环境变量的情况下解决此问题,并解决VSC问题?

EN

回答 1

Stack Overflow用户

发布于 2019-09-19 04:29:44

最简单的解决方案是不使用隐式相对导入(我假设这是Python2.7)。基本上使用显式的相对导入,并确保导入在包含它们的包中解析,而不是Python必须在sys.path中搜索模块。

如果您使用的是Python2.7,请将from __future__ import absolute_import放在文件的顶部。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57961005

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档