作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我制作了一个模块,其中包含关于核心数量的 if 条件。
module mymodule
import Pkg
import PyCall
using Distributed
if nworkers() > 1
@everywhere using Pkg
@everywhere Pkg.activate(".")
@everywhere Pkg.instantiate()
@everywhere using PyCall
@everywhere @pyimport scipy.signal as ss
function parallel()
....
end
else
using Pkg
Pkg.activate(".")
Pkg.instantiate()
using PyCall
@pyimport scipy.signal as ss
function serial()
....
end
end
end #mymodule
代码在执行时抛出以下错误
ERROR: LoadError: LoadError: UndefVarError: @pyimport not defined
Stacktrace:
[1] top-level scope
[2] include at ./boot.jl:326 [inlined]
[3] include_relative(::Module, ::String) at ./loading.jl:1038
[4] include(::Module, ::String) at ./sysimg.jl:29
[5] include(::String) at ./client.jl:403
[6] top-level scope at none:0
in expression starting at /storage/work/s/mymodule.jl:81
in expression starting at /storage/work/s/mymodule.jl:30
第 81 行是 else 条件下对应于 @pyimport scipy.signal as ss
的行,第 30 行对应于 if nworkers() > 1
。
在此问题之前,代码在 @everywhere @pyimport scipy.signal as ss
这行有问题,但通过使用 import PyCall
问题消失了;奇怪的是,它并没有解决前一个问题。
有没有人遇到过类似的问题或知道此类问题?
最佳答案
您需要改用 pyimport
function。由于解析/评估顺序,宏定义(来自您的using
)和该宏在同一 block 中的使用不起作用。
简单改一下代码
@pyimport scipy.signal as ss
到
ss = pyimport("scipy.signal")
您也可以将 block 分成两部分,第一部分用于定义,第二部分用于使用。但是,我不会那样做 @pyimport
宏 is already deprecated.
关于julia - 在 Julia 1.1.0 中使用 pyimport 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55566847/
情况: 我正在尝试获取当前项目中所有 python 代码的覆盖率报告。我在很大程度上使用 Coverage.py 并取得了巨大成功。目前我正在使用它,如 this利用 sitecustomize.py
我制作了一个模块,其中包含关于核心数量的 if 条件。 module mymodule import Pkg import PyCall using Distributed if nworkers()
我是一名优秀的程序员,十分优秀!