繁体   English   中英

“没有名为‘foo’的模块”Visual Studio 2017 上的 Python 错误

[英]"No module named 'foo'" Python error on Visual Studio 2017

我正在使用 Python 学习数据可视化,并尝试创建一个带有随机散点的简单图形。 我目前有两个 Python 文件,分别是“random_walk.py”和“rw_visual.py”。

我收到错误消息,指出“没有名为 random_walk 的模块”,以及“无法解析‘random_walk’。此模块可能缺少 IntelliSense。”

我正在使用 Visual Studio 2017,并使用 matplotlib。

'random_walk.py'

from random import choice

class RandomWalk():

    def __init__(self, num_points=500):
        """Initialize attributes of a walk."""
        self.num_points = num_points

        # All walks start at (0,0).
        self.x_values = [0]
        self.y_values = [0]

'rw_visual.py'

import matplotlib.pyplot as plt
from random_walk import RandomWalk

# Make a random walk, and plot the points.
rw = RandomWalk()
rw.fill_walk()

plt.scatter(rw.x_values, rw.y_values, s=15)

plt.show()

这些是我的文件保存的地方。

C:\\Users\\foo\\Desktop\\python_work\\project_2\\rw_visual\\rw_visual C:\\Users\\foo\\Desktop\\python_work\\project_2\\random_walk\\random_walk

我试图将文件合并到一个文件夹下,但没有做任何事情。 我还在“project_2”文件夹下创建了一个__init__.py ,不知何故,错误消失了(但没有显示任何图形),但现在它没有改变任何东西..

好的,修好了。 首先,让我们考虑您的文件夹结构如下:

project_2/
|-- rw_visual/
|   |-- rw_visual.py
|
|-- random_walk/
|   |-- __init__.py
|   |-- random_walk.py

剪切文件夹random_walk/ ,保留其所有文件。 现在,在 Python 安装目录中找到文件夹site-packages (对我来说,它看起来像~\\Python37\\Lib\\site-packages )。 在这里,您将找到 pip 安装的所有模块。 只需将文件夹random_walk与其他模块一起粘贴到此处即可。

接下来,让我们让您的程序了解要做什么。 在你的情况下,这样的事情应该工作:

import matplotlib.pyplot as plt
from random_walk import random_walk as rw

# Make a random walk, and plot the points.
r_walk = rw.RandomWalk()
r_walk.fill_walk()

plt.scatter(r_walk.x_values, r_walk.y_values, s=15)

plt.show()

在这个import ,你告诉 Python 找到模块random_walk ,这是你的文件夹的名字。 在里面,Python 会找到__init__.py文件,确认它是一个模块。 现在,从此文件夹/模块中,您应选择要使用的 Python 文件。 因此, from random_walk import random_walk ,其中第一个 random_walk 指的是文件夹,第二个指的是程序。 现在,我只是使用as rwas rw代码的编写。

现在您的模块已导入,您可以使用rw.your_random_definition调用在其上定义的所有内容。

请记住:除了结构正确之外,我无法判断您的代码是否正确。 我向您保证这将正确导入您的模块,但由于我无法测试代码,因此无法确保它正在工作。 如果您遇到任何其他问题,则有 99.99% 的可能性来自编码错误。 如果您需要更多帮助,我建议提供一个最小的、可验证的代码片段

暂无
暂无

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

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