繁体   English   中英

Visual Studio 2013 中的 Python 无模块错误

[英]Python No module Error with Visual Studio 2013

我正在尝试在 Visual Studio 2013 上运行一些 python 3.4 示例。当我尝试从父文件夹import某个模块并从 Visual Studio 2013 内部运行它时,我总是遇到ImportError: No module named 'foo'

但是,当我使用 python 命令python boo.py从控制台运行它时,它执行得很好。

例如,这是我的项目结构

myproject/
  foo.py
  __init__.py
  koo/
    boo.py
    __init__.py

foo.py内容是

def do1():
  print('Inside foo module')

boo.py内容是

import sys
sys.path.append("..")
import foo

foo.do1()

我想,这个问题与 Visual Studio 无关,也与为什么它在 VS 中不起作用有关。 真正的问题是它为什么在终端中工作。 可能是因为终端运行在不同的环境设置下,python解释器可以找到父目录,从而找到foo.py:

当导入名为 spam 的模块时,解释器首先搜索具有该名称的内置模块。 如果未找到,它将在变量 sys.path 给出的目录列表中搜索名为 spam.py 的文件。 sys.path 从这些位置初始化:

  • 包含输入脚本的目录(或当前目录)。

  • PYTHONPATH(目录名称列表,与 shell 变量 PATH 具有相同的语法)。

  • 依赖于安装的默认值。

初始化后,Python 程序可以修改 sys.path。 包含正在运行的脚本的目录位于搜索路径的开头,在标准库路径之前。 这意味着将加载该目录中的脚本而不是库目录中的同名模块。 这是一个错误,除非更换是有意的。 有关更多信息,请参阅标准模块部分。

因此,将父目录添加到 pythonpath,它将起作用。 或者修改 sys.path 添加父目录。

试试这个它对我有用:

import sys
 sys.path.append("Folder PATH"). "Folder PATH" given as...C:\\Working_directory\\VSProject
import <MODULE_NAME> 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM