小编omg*_*wot的帖子

Python/Cython导入文件和方法有问题

有两个与导入相关的问题可能是也可能不是cython相关的?

我有以下简化文件来重新创建问题.所有文件都在同一目录中.该.pyx文件已经成功地编入*.so,*.pyc*.c文件.

setup.py:

from distutils.core import setup
from Cython.Build import cythonize

setup(
    ext_modules=cythonize("*.pyx"),
)
Run Code Online (Sandbox Code Playgroud)

cy1.pyx :( cython)

cdef int timestwo(int x):
    return x * 2
Run Code Online (Sandbox Code Playgroud)

cy1.pxd:

cdef int timestwo(int x)
Run Code Online (Sandbox Code Playgroud)

cy3.py :(普通蟒蛇)

def tripleit(x):
    return x*3
Run Code Online (Sandbox Code Playgroud)

go.py:

from cy1 import timestwo
print str(timestwo(5))
Run Code Online (Sandbox Code Playgroud)

给我错误:ImportError:无法导入名称timestwo

如果我改为:

go.py:

import pyximport; pyximport.install()
import cy1
print str(cy1.timestwo(5))
Run Code Online (Sandbox Code Playgroud)

它告诉我:AttributeError:'module'对象没有属性'timestwo'

如果我一起取出cython并尝试使用来自cy3.py的普通python调用:

go.py:

import cy3
print str(cy3.tripeleit(3))
Run Code Online (Sandbox Code Playgroud)

我得到:AttributeError:'module'对象没有属性'tripeleit'

如果我这样做,最后:

go.py:

from cy3 import tripleit
print str(tripeleit(3))
Run Code Online (Sandbox Code Playgroud)

我明白了:

NameError: name 'tripeleit' is …
Run Code Online (Sandbox Code Playgroud)

python cython importerror python-2.7

3
推荐指数
1
解决办法
5642
查看次数

Rails 3:ActiveResource自定义方法调用 - ClientError 414 - 解决?

我目前正在使用ActiveResource创建客户端和服务器应用程序以进行Web服务.客户端有一个长字符串(:history),需要服务器完成转换过程.

在这里,客户端调用我的对象上的post方法,该方法扩展了ActiveResource :: Base

active_resource.post(:convert, {:history => hh, :format => format})
Run Code Online (Sandbox Code Playgroud)

这行错误抱怨URI太长:

ActiveResource :: ClientError失败.响应代码= 414.响应消息= Request-URI太大.

我有什么其他选择来发送"大"数据?可能在上面的hh字符串中查找2000个字符的数据.

谢谢!

methods post ruby-on-rails activeresource

2
推荐指数
1
解决办法
1449
查看次数