小编Zul*_*ulu的帖子

python使用CDLL加载c lib,在python路径中看不到库

我正在努力让一些开源学术代码工作(项目主页在这里).它是一个很大的C++代码库,带有(非常)瘦的python包装器,用于CDLL加载C++并调用一些可用的C函数来允许代码的原始python脚本.

但是,初始导入代码崩溃,因为它无法在site-packages中找到它旁边的.so文件:

在已安装的文件中:

from ctypes import *

try:
  self.lib = CDLL("_lammps.so")
except:
  try:
    self.lib = CDLL("_lammps_serial.so")
  except:
    raise OSError,"Could not load LAMMPS dynamic library"
Run Code Online (Sandbox Code Playgroud)

并在脚本或解释器中:

from lammps import lammps
l = lammps()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "lammps.py", line 42, in __init__
    raise OSError,"Could not load LAMMPS dynamic library"
OSError: Could not load LAMMPS dynamic library
Run Code Online (Sandbox Code Playgroud)

其他的答案似乎已经本公约所涵盖的,但如果这只能CDLL()是在脚本中调用实际调用(或跑解释提示的工作目录) -即如果"相对路径"是在用户空间,而不是蟒蛇库空间.

我们如何可靠地安装导入我们自己构建的C/C++库?没有污染系统库位置,如/usr/lib不是非常pythonic,我看不到一个简单的解决方案.

(编辑:更正的函数名称,不明确的重构无益!抱歉!)

python ctypes lammps

7
推荐指数
2
解决办法
2万
查看次数

Django-import-export - 导入高级字段?

对于Django模型,我使用的是django-import-export包.

如果需要导出更多只有可用的模型字段(如属性或自定义字段),可以使用import_export.fields.Field类和可选dehydrate_<field>方法添加new .

from import_export import resources, fields, instance_loaders

class ProductResource(resources.ModelResource):
    categories  = fields.Field()
    price       = fields.Field(attribute='unit_price')

    class Meta:
        model  = Product

    def dehydrate_categories(self, product):
        return ';'.join(
                '/%s' % '/'.join([c.name for c in cat.parents()] + [cat.name])
                for cat in product.category.iterator() )
Run Code Online (Sandbox Code Playgroud)

它确实运作良好,但仅适用于出口.那么进口,反向过程呢?dehydrate_方法有一些对应的吗?

到目前为止,我已经覆盖了get_or_init_instance方法:

class ProductResource(resources.ModelResource):
    def get_or_init_instance(self, instance_loader, row):
        row['unit_price'] = row['price']; row.pop('price')
        return super(ProductResource, self).get_or_init_instance(instance_loader, row)
Run Code Online (Sandbox Code Playgroud)

但怀疑这是正确的方法.

将不胜感激任何提示如何处理自定义字段的导入.

python django django-models satchmo django-import-export

7
推荐指数
1
解决办法
3643
查看次数

Django在IE7中形成突破

我从模型中获得了一个带有错误检查的dJango webform(有效的电子邮件字段等).在各种浏览器Opera,Camino,Netscape,Safari和IE(IE7除外)中,一切正常.

我在IE7中得到的只是'Internet Explorer无法显示网页'的消息.如果表单有效,则数据将写入数据库,因此我认为它与重定向阶段有关.

我尝试了各种方法method = get和javascript表单提交,但似乎没有什么似乎阻止IE7给我这个错误.

任何帮助,将不胜感激.

forms.py

class NewElectiveForm(ModelForm):  
    host_country    = forms.CharField(widget=forms.widgets.Select(choices=COUNTRIES) , label="Destination")
    host_type       = forms.CharField(widget=forms.widgets.Select(choices=HOST_TYPE) , label="Location type")      
    host_name       = forms.CharField(max_length=256, label="Name of host institution")
    host_street     = forms.CharField(required = False, max_length=100, label="Street")
    host_city       = forms.CharField(required = False, max_length=100, label="City") 
    host_district   = forms.CharField(required = False, max_length=100, label="District")
    host_zipcode    = forms.CharField(required = False, max_length=100, label="Zipcode")
    host_supervisor = forms.CharField(required = False, max_length=256, label="Name of supervisor")
    host_email      = forms.EmailField(required = False, max_length=100, label="Email")
    host_fax        = forms.CharField(required = False, max_length=100, label="Fax.No.") …
Run Code Online (Sandbox Code Playgroud)

django django-forms internet-explorer-7

6
推荐指数
1
解决办法
430
查看次数

Python -c开关

我现在有

".".join(str(z) for z in [int(x, 16) for x in (re.sub(r'(.{2})(?!$)', r'\1.', "00112233")).split('.')])
'xx.xx.xx.xx'
Run Code Online (Sandbox Code Playgroud)

哪个有效,但当我尝试通过python -c开关使用它失败了?

[root@monty ~]# python -c "import re ; ".".join(str(z) for z in [int(x, 16) for x in (re.sub(r'(.{2})(?!$)', r'\1.', "00112233")).split('.')])"
python -c "import re ; ".".join(str(z) for z in [int(x, 16) for x in (re.sub(r'(.{2})(?"import re ; ".".join(str(z) for z in [int(x, 16) for x in (re.sub(r'(.{2})(?python)', r'\1.', "00112233")).split('.')])")', r'\1.', "00112233")).split('.')])"
-bash: syntax error near unexpected token `str'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗 ?

python bash shell quoting

6
推荐指数
2
解决办法
8801
查看次数

Django get_or_create和ManytoManyField

我以前用的是ForeignKey.

模型

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ForeignKey(User)
Run Code Online (Sandbox Code Playgroud)

视图

def phone_request(request):
    user_id = request.user.id
    uuid = request.GET.get('uuid')
    profile_id = profiles.objects.get(uuid=uuid).user_id
    p,created = Phone_request_list.objects.get_or_create(who=user_id,whose_id=profile_id)
    p.save()
Run Code Online (Sandbox Code Playgroud)

但现在我想将我的模型改为多个领域

class Phone_request_list(models.Model):
    who = models.IntegerField(null=True)
    whose = models.ManyToManyField(User) 
Run Code Online (Sandbox Code Playgroud)

这个时候我怎么能检查whosewhoget_or_create.请帮我.

python django

6
推荐指数
1
解决办法
3554
查看次数

无法运行 nodejs 项目 - npm ERR!代码EBAD平台

我是 nodeJS 的新手,所以这可能是一个愚蠢的问题。

我刚刚安装了 nodejs、node-gyp、npm、git、Python 和 MS Visual Studio C++ Express。

当我执行时,"npm install"我得到以下输出:

npm WARN package.json strider@1.6.6 No license field.

> contextify@0.1.14 install C:\Users\W7\Documents\GitHub\strider\node_modules\angular\node_modules\jsdom\node_modules\contextify
> node-gyp rebuild


C:\Users\W7\Documents\GitHub\strider\node_modules\angular\node_modules\jsdom\node_modules\contextify>if not defined npm_config_node_gyp (node "C:\Program Files\nodejs\node_modules\npm\bin\node-gyp-bin\\..\..\node_modules\node-gyp\bin\node-gyp.js" rebuild )  else (node  rebuild )
Building the projects in this solution one at a time. To enable parallel build, please add the "/m" switch.
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V110\Microsoft.Cpp.Platform.targets(42,5): error MSB8020: The builds tools for Visual Studio 2010 (Platform Toolset = 'v100') cannot be found. …
Run Code Online (Sandbox Code Playgroud)

git node.js npm node-gyp

6
推荐指数
1
解决办法
6642
查看次数

在Django Rest Framework Serializer中合并两个字段

我正在使用Django Rest Framework身份验证系统,它带有一个默认的用户表.在该表中,它将在两个不同的字段中分割名字和姓氏.

是否可以在序列化器中加入这两个字段?像这样的东西:

class UserSerializer(serializers.ModelSerializer):
    full_name = serializers.CharField(source='user.first_name' + ' ' + 'user.last_name')
Run Code Online (Sandbox Code Playgroud)

这样我会得到以下回复:

{
    full_name: "firs_name last_name"
}
Run Code Online (Sandbox Code Playgroud)

django django-rest-framework

6
推荐指数
1
解决办法
3072
查看次数

Django在QuerySet/Dict中将datetime序列化为json

我试图通过以下方式对对象进行序列化QuerySetDict对象datetime.date:

方式#1:

json.dumps(MyModel.objects.values())
Run Code Online (Sandbox Code Playgroud)

引发错误:

例外值:[{'date':datetime.date(2012,5,26),'time':datetime.time(0,42,27)}]不是JSON可序列化的

方式#2:

json.dumps(MyModel.objects.values(), cls=DjangoJSONEncoder)
Run Code Online (Sandbox Code Playgroud)

还会引发错误:

例外值:[{'date':datetime.date(2012,5,26),'time':datetime.time(0,42,27)}]不是JSON可序列化的

方式#3:

json.dumps(MyModel.objects.all(), cls=DjangoJSONEncoder)
Run Code Online (Sandbox Code Playgroud)

异常值:[<MyModel:MyModel object>]不是JSON可序列化的

方式#4:

serializers.serialize('json', MyModel.objects.all())
Run Code Online (Sandbox Code Playgroud)

引发错误:

异常值:'str'对象没有属性'_meta'

如何在Django中使用datetime的字段将对象序列化为JSON?

django serialization json django-models

5
推荐指数
2
解决办法
8788
查看次数

如何在django中使用rapportive.py

我在我的python django项目中使用rapportive.我收到一个错误说no information found

该文件如下:

import sys
import logging
from textwrap import dedent

# Requests, from python-requests.org
from docopt import docopt


# pylint: disable=C0103
logger = logging.getLogger(__name__)
logger.setLevel(logging.INFO)
# pylint: enable=C0103

STATUS_URL = 'https://rapportive.com/login_status?user_email={0}'
URL = 'https://profiles.rapportive.com/contacts/email/{0}'


# pylint: disable=R0903
class Profile(object):

    """
Profile object for collecting profile information before printing
"""

    def __init__(self, person):
        if person:
            self.name = person.get('name')
            self.jobinfo = [
                (occupation.get('job_title'), occupation.get('company'))
                for occupation in person.get('occupations', [])
            ]

            self.memberships = [
                (membership.get('site_name'), membership.get('profile_url'))
                for …
Run Code Online (Sandbox Code Playgroud)

python email django

5
推荐指数
0
解决办法
453
查看次数

本地和解析后,currentuser在登录后为空并且cmd + R.

我遇到了React Native和Parse JS SDK的问题.
我正在使用ParseReact

我已经建立了一个登录,注册和一个主视图,注册和登录工作正常,但我登录后 - >定向到主视图,当我在我的模拟器中刷新应用程序(CMD + R)时,它让我回来再次登录视图,我应该进入主视图.

如您所见,我为initialComponent设置了一个状态:

this.state = {        
      InitialComponent : ((!currentUser) ? LoginView : MainView)
};
Run Code Online (Sandbox Code Playgroud)

这允许我的导航器检查currentUser是否为null然后加载LoginView作为初始组件,否则设置主视图(用户登录)

'use strict';
var React = require('react-native');
var MainView = require('./MainView');
var LoginView = require('./LoginView');


var Parse = require('parse').Parse;
var ParseReact = require('parse-react');
Parse.initialize("mykey", "mykey");


var {
  AppRegistry,
  StyleSheet,
  Text,
  View,
  TextInput,
  TouchableHighlight,
  Navigator,
  Component
} = React;


class MyApp extends Component {
    constructor(props) {
      super(props);

      var currentUser = Parse.User.current();
      console.log('Current User:' + currentUser);

      this.state = { …
Run Code Online (Sandbox Code Playgroud)

parse-platform reactjs react-native

5
推荐指数
2
解决办法
2695
查看次数