首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python中Meep中的Vector3

Python中Meep中的Vector3
EN

Stack Overflow用户
提问于 2017-10-22 03:35:22
回答 2查看 1.3K关注 0票数 1

我在我的简单python代码中得到了'module' object has no attribute 'Vector3'错误。

这是rightAngle.py文件

代码语言:javascript
复制
import meep as mp
import math

cell = mp.Vector3(16, 8, 0)
geometry = [mp.Bloack(mp.Vector3(1e20, 1, 1e20),
                      center = mp.Vector3(0, 0),
                      material = mp.Medium(epsilon = 12))]
sources = [mp.Source(mp.ContinuousSource(frequency = 0.15),
                     component = mp.Ez,
                     center = mp.Vector3(-7, 0))]
pml_layers = [mp.PML(1.0)]
resolution = 10

使用以下命令进行比较:

代码语言:javascript
复制
python rightAngle.py >& rightAngle.out

并获得以下输出:

代码语言:javascript
复制
Traceback (most recent call last):
  File "rightAngle.py", line 4, in <module>
    cell = mp.Vector3(16, 8, 0)
AttributeError: 'module' object has no attribute 'Vector3'

我所要做的就是从这个相当可靠的source中复制和粘贴给定的代码,但在Vector3对象中遇到错误。

Python版本:

代码语言:javascript
复制
Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2

我不知道我错过了什么?

Meep文档:https://meep.readthedocs.io/en/latest/Python_Tutorials/Basics/

EN

回答 2

Stack Overflow用户

发布于 2018-01-31 02:40:00

当尝试在Ubuntu 16.04上使用它时也遇到了同样的问题。

对我来说起作用的是为Python2.7安装Anaconda并使用以下命令创建their recommended environment

conda create -n mp -c chogan -c defaults -c conda-forge pymeep

在那之后就没有Vector3问题了。

票数 1
EN

Stack Overflow用户

发布于 2021-10-02 01:10:17

我的环境脚本在下面,但我不会在这里详细介绍。我的计划是基于我当前的工作设置创建一个git存储库,并将其在Github上公开,这将迫使我组织整个设置,并使其对其他人有用。

下面的脚本允许我在没有Anaconda3的情况下使用python3运行Meep。这样你就可以使用最新的包和git源码来构建Meep、Open MPI和支持库。我的主目录被替换为

代码语言:javascript
复制
    #!/bin/bash

export MPI_PROJ=/home/<USER>/projects/mpi

export MPI_BASE=/usr/local/mpi/openmpi/base

export MPI_411=$MPI_BASE/411

# 
# CRITICAL ENVARS - THESE MUST BE SET AS FOLLOWS FOR THE EXISTING MEEP, MPB AND OPENMPI 4.1.1
# 
export LD_LIBRARY_PATH="/usr/local/mpi/meep/latest/lib:/usr/local/mpi/openmpi/base/411/bin:/home/fraser/.local/bin:/usr/local/bin:/usr/bin:/opt/bin:/bin:/sbin:/home/fraser/projects/mpi/bin" 

export CFLAGS="-I/usr/local/mpi/meep/latest/include  -I/usr/local/mpi/mpb/latest/include -I/usr/include/python3.8"

export PKG_CONFIG_PATH="/usr/local/mpi/meep/latest/lib/pkgconfig:/usr/local/mpi/openmpi/base/411/lib/pkgconfig:/usr/lib/x86_64-linux-gnu/pkgconfig:/usr/local/mpi/meep/latest/lib/pkgconfig"

export LDFLAGS="-L/usr/local/mpi/openmpi/base/411/lib  -L/usr/local/mpi/meep/latest/lib -lmpi -lmpb"

export PYTHONPATH="/home/fraser/.local/lib/python3.8/site-packages:/usr/lib/python3.8:/usr/local/mpi/meep/latest/lib/python3.8/site-packages:/usr/local/lib/python3.8/dist-packages"

export PATH=/home/fraser/projects/mpi/bin:/usr/local/mpi/meep/latest/bin:/usr/local/mpi/openmpi/base/411/bin:/home/fraser/.local/bin:/usr/local/bin:/usr/bin:/opt/bin:/bin:/sbin

为了在3台真实机器和2台虚拟机上运行,Open MPI 4.1.1已经构建了很多次。最后,所有3个Centos 8 Stream安装都一起完美地运行了mpi。两台ubuntu 21机器(一台real,一台vm)能够一起完美地运行mpi。Centos 8机器可以与Ubuntu 21机器对话。由于glibc版本差异,我无法在Ubuntu 21和Centos 8 Stream之间复制mpi安装。

然后转到Meep,它需要“从源代码构建Meep”文档页面中列出的所有库。其中一些无法从Mint 20代码库中获得,必须从源代码构建。创建了构建脚本,以便为每个脚本运行配置,以便记录所使用的选项。

Meep需要特定版本的harminv,fftw3,guile,swig,hdf5。其他库是使用apt从mint20包存储库中安装的。

Meep也被多次构建,因为我的环境是为了正确地从/usr/local以外的位置运行Meep。要使上述环境变量足够接近,需要进行一些修补工作。他们可能需要一些调整,以达到您的目的。

一个中间更新--我能够在CentOS8流上复制我在Mint20 Linux上的成功。我将把所有的工作部分收集到一个git repo中,并记录那些似乎没有人在StackOverflow上发布的小细节,甚至是Github的问题!例如,在swig git克隆中运行自动生成之前导出PY3=1。否则它想要使用python 2!

另一个问题是:例如,将克隆保存为git-meep。然后复制到meep。然后在meep上工作。如果您使用configure/make/make test/make install超过5次,或者没有注意到任何代码或环境更改,请删除meep树。确保在删除之前保存所有环境设置或配置运行脚本。

在运行任何环境设置脚本之前,将git-meep复制到meep并再次运行autogen.sh。然后运行这些脚本,然后运行任何运行configure和/或make的脚本。

我的configure脚本严格运行configure。然后,我手动运行make/make check/make install,以防构建失败。

还有更多奇怪的事情要做,才能让它工作。

当github存储库在线时,将在此处发布。

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

https://stackoverflow.com/questions/46867259

复制
相关文章

相似问题

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