我正在努力让一些开源学术代码工作(项目主页在这里).它是一个很大的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,我看不到一个简单的解决方案.
(编辑:更正的函数名称,不明确的重构无益!抱歉!)
对于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)
但怀疑这是正确的方法.
将不胜感激任何提示如何处理自定义字段的导入.
我从模型中获得了一个带有错误检查的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) 我现在有
".".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)
有任何想法吗 ?
我以前用的是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)
这个时候我怎么能检查whose
与who
在get_or_create
.请帮我.
我是 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) 我正在使用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) 我试图通过以下方式对对象进行序列化QuerySet
或Dict
对象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?
我在我的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) 我遇到了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)