首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyCall构建但什么都不起作用

PyCall构建但什么都不起作用
EN

Stack Overflow用户
提问于 2019-07-18 22:25:07
回答 1查看 601关注 0票数 0

在构建和预编译PyCall之后,我尝试了一些示例代码来验证它的功能。不幸的是,我马上就遇到了错误。

代码语言:javascript
复制
julia> import Pkg

julia> Pkg.build("PyCall")
  Building Conda ─→ `C:\Users\Student\.julia\packages\Conda\kLXeC\deps\build.log`
  Building PyCall → `C:\Users\Student\.julia\packages\PyCall\ttONZ\deps\build.log`

julia> import PyCall

julia> math = pyimport("math")
ERROR: UndefVarError: pyimport not defined
Stacktrace:
 [1] top-level scope at none:0

julia> py"""
       import math
       math.sin(math.pi / 4)
       """
ERROR: LoadError: UndefVarError: @py_str not defined
in expression starting at REPL[5]:1

julia> py"import math"
ERROR: LoadError: UndefVarError: @py_str not defined
in expression starting at REPL[6]:1

我在Windows10 x64上使用Julia1.1.1 (2019-05-16)。我没有在网上看到任何关于这个具体问题的看法,现在我对这个问题感到沮丧。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-07-20 19:25:43

由于您是在importing PyCall,所以必须以模块名称本身作为前缀指定pyimport()函数的作用域,即

代码语言:javascript
复制
julia> import PyCall

julia> math = PyCall.pyimport("math")
PyObject <module 'math' from '/usr/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>

julia> math.sin(math.pi/4)
0.7071067811865475

或者,正如戈米罗在讨论中提到的那样,您的问题也可以通过使用using PyCall将这些函数引入本地范围来解决;

代码语言:javascript
复制
julia> using PyCall

julia> math = pyimport("math")
PyObject <module 'math' from '/usr/lib/python3.7/lib-dynload/math.cpython-37m-x86_64-linux-gnu.so'>

julia> math.sin(math.pi/4)
0.7071067811865475

Julia文件中有更多关于这一点的内容。

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

https://stackoverflow.com/questions/57103334

复制
相关文章

相似问题

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