【问题标题】:Python - ModuleNotFound error using AnacondaPython - 使用 Anaconda 的 ModuleNotFound 错误
【发布时间】:2018-01-08 17:22:46
【问题描述】:

我正在尝试运行这个程序:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from __future__ import absolute_import
from __future__ import division
from __future__ import print_function
from __future__ import unicode_literals
from io import open

from multiprocessing import Pool
import buildingspy.simulate.Simulator as si


# Function to set common parameters and to run the simulation
def simulateCase(s):
''' Set common parameters and run a simulation.

:param s: A simulator object.

'''
s.setStopTime(86400)
# Kill the process if it does not finish in 1 minute
s.setTimeOut(60)
s.showProgressBar(False)
s.printModelAndTime()
s.simulate()


def main():
''' Main method that configures and runs all simulations
'''
import shutil
# Build list of cases to run
li = []
# First model
model = 'Buildings.Controls.Continuous.Examples.PIDHysteresis'
s = si.Simulator(model, 'dymola', 'case1')
s.addParameters({'con.eOn': 0.1})
li.append(s)
# second model
s = si.Simulator(model, 'dymola', 'case2')
s.addParameters({'con.eOn': 1})
li.append(s)

# Run all cases in parallel
po = Pool()
po.map(simulateCase, li)

# Clean up
shutil.rmtree('case1')
shutil.rmtree('case2')

# Main function
if __name__ == '__main__':
main()

我不断收到此错误:

File "C:/Users/Toshiba/.spyder-py3/temp.py", line 11, in <module>
    import buildingspy.simulate.Simulator as si

ModuleNotFoundError: No module named 'buildingspy'

我已经多次使用 pip 安装了该软件包,并且没有任何变化。

我错过了什么?

This是这段代码的来源。

【问题讨论】:

  • 我认为 conda,而不是 pip,是 Anaconda 的包管理器。
  • 我真的迷路了,这是我第一次尝试在python上运行一些东西

标签: python anaconda modelica dymola


【解决方案1】:

该错误可能是由于您的计算机上安装了多个 python:
https://docs.python.org/3/installing/#work-with-multiple-versions-of-python-installed-in-parallel

请在您的脚本(或新脚本)的某处添加以下行并从 Spyder 运行一次,然后从控制台运行一次并比较输出:

import sys
print("python: {}".format(sys.version))
# also add the following if running from python 3
from shutil import which
print(which("python"))

Buildingspy 必须使用 pip 安装,我建议使用命令安装它:

python -m pip install -U https://github.com/lbl-srg/BuildingsPy/archive/master.zip

Anaconda 在开始菜单中添加了一个Anaconda prompt,用它来确保 python.exe 的路径是正确的。

一旦正确安装 BuildingsPy,您将遇到在 Windows 上多处理无法从 Spyder(或 IPython/Jupyter)工作的问题,请同时阅读此问题:
https://github.com/lbl-srg/BuildingsPy/issues/179
您必须从命令行运行脚本。

【讨论】:

  • 我运行了你的 2 行代码并使用 CMD 调用 Python 得到它: python: 3.6.3 |Anaconda, Inc.| (默认,2017 年 10 月 15 日,03:27:45)[MSC v.1900 64 位 (AMD64)] 然后使用 anaconda (spyder):python: 3.6.3 |Anaconda, Inc.| (默认,2017 年 10 月 15 日,03:28:48)[MSC v.1900 64 位 (AMD64)] 我解释为我只有一个安装,对吧?
  • 然后我转到命令提示符并尝试运行脚本(按照您所说的安装软件包后),我得到了几行
  • Traceback(最近一次调用最后):文件“C:\Users\Toshiba\Anaconda3\lib\multiprocessing\process.py”,第 258 行,在 _bootstrap self.run() 文件“C: \Users\Toshiba\Anaconda3\lib\multiprocessing\process.py”,第 93 行,运行 self._target(*self._args, **self._kwargs) 文件“C:\Users\Toshiba\Anaconda3\lib\multiprocessing \pool.py",第 108 行,在工作任务 = get() 文件中
  • “C:\Users\Toshiba\Anaconda3\lib\multiprocessing\queues.py”,第 337 行,在 get return _ForkingPickler.loads(res) A​​ttributeError: Can't get attribute 'simulateCase' on main' (built-in)> Process SpawnPoolWorker-3: Traceback (最近一次调用最后): 文件 "C:\Users\Toshiba\Anaconda3\lib\multiprocessing\process.py" ,第 258 行,在 _bootstrap self.run() 文件中
  • “C:\Users\Toshiba\Anaconda3\lib\multiprocessing\process.py”,第 93 行,运行 self._target(*self._args, self._kwargs) 文件“ C:\Users\Toshiba\Anaconda3\lib\multiprocessing\pool.py”,第 108 行,在工作任务 = get() 文件中“C:\Users\Toshiba\Anaconda3\lib\multiprocessing\queues.py”,第 337 行,在获取返回 ForkingPickler.loads(res) A​​ttributeError: Can't get attribute 'simulateCase' on _main__' (built-in)>**bold 我还想念吗一步?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-02-20
  • 2023-01-10
  • 2022-07-08
  • 2021-03-07
  • 1970-01-01
相关资源
最近更新 更多