我有一个类A,它由一堆其他类继承.其中一些函数有一些相似的函数,将这些函数定义在其他地方并由需要它们的类调用会很好.但是这些函数调用超类中定义的函数.
class A():
def imp_func(*args):
# called by the child class functions
Class B(A):
def common_func(self):
# some stuff
self.imp_func(*args)
Run Code Online (Sandbox Code Playgroud)
所以我创建了我的辅助函数,它将self object参数作为参数,我可以imp_func在辅助函数中调用from.
def helper_func(obj, some_args):
# some common stuff
obj.imp_func(*args)
class B(A):
def common_func(self):
# unique stuff
helper_func(self, some_args)
Run Code Online (Sandbox Code Playgroud)
这解决了这个问题.
但我应该这样做吗?这是Pythonic吗?
我已经安静地阅读了一些提供静态文件的地方应该留给服务器,例如在这个SO问题的几个答案中.但是我使用的是OpenShift PaaS,并且无法弄清楚如何在那里修改.htaccess文件.
我遇到了这段代码,它从模板中提供站点地图.我在我的应用上为sitemap和robots.txt做了这样的事情,就像这样 -
@app.route("/sitemap.xml")
def sitemap_xml():
response= make_response(render_template("sitemap.xml"))
response.headers['Content-Type'] = 'application/xml'
return response
@app.route("/robots.txt")
def robots_txt():
return render_template("robots.txt")
Run Code Online (Sandbox Code Playgroud)
这有什么害处,还是我的方法好吗?
这是我的setup.py档案
#!/usr/bin/env python
from setuptools import setup
from sys import path
setup(name= 'conundrum',
version= '0.1.0',
author= 'elssar',
author_email= 'elssar@altrawcode.com',
py_modules= ['conundrum'],
url= 'https://github.com/elssar/conundrum',
license= 'MIT',
description= 'A framework agnostic blog generator.',
long_description= open(path[0]+'/README.md', 'r').read(),
install_requires= [
'PyYAML >= 3.0.9',
'Markdown >= 2.2.0',
'requests >= 1.0.4',
],
)
Run Code Online (Sandbox Code Playgroud)
我一直在使用这两种尝试setuptools和distutils,但不会安装我的模块.相反,我得到了
file module.py (for module module) not found
Run Code Online (Sandbox Code Playgroud)
这是我的目录结构
/module
|--/test
|--README.md
|--license.txt
|--module.py
|--setup.py
Run Code Online (Sandbox Code Playgroud)
需要明确的是,module是根目录.
谁能告诉我我做错了什么?
这是我尝试安装时的输出
elssar@elssar-laptop:/usr/local/src/conundrum$ sudo python /home/elssar/code/conundrum/setup.py install
/usr/lib/python2.6/distutils/dist.py:250: UserWarning: 'licence' distribution …Run Code Online (Sandbox Code Playgroud) 我正在使用 BeautifulSoup 解析一个网站。我知道我想要的内容在adiv类中content。并且内容全部在p标签中。所以我跑了
paragraphs= content.findAll('p')
Run Code Online (Sandbox Code Playgroud)
到这里为止都还好。我迭代该列表,并有一个if条件,如果遇到特定的类,该条件将跳出循环。
for para in paragraphs:
if 'class' in para:
if para['class']=='end':
break
Run Code Online (Sandbox Code Playgroud)
但这不起作用。当我运行循环时,end遇到类时它不会中断。事实上,在循环迭代时,所有元素的类似乎都丢失了。
for para in paragraphs:
if 'class' in para:
print para['class']
Run Code Online (Sandbox Code Playgroud)
即使存在带有类的元素,也不会打印任何内容。事实上,这段代码确实打印出了类 -
>>>paragraphs[0]['class']
u'dateline'
Run Code Online (Sandbox Code Playgroud)
但,
>>> print 'class' in paragraphs[0]
False
Run Code Online (Sandbox Code Playgroud)
我不明白这里发生了什么。最终我通过使用异常解决了我的问题,但这有点困扰我。有人能解释一下这里发生了什么吗?
我有一个django网站,它使用环境变量DJANGO_MODE来决定使用哪些设置 - 开发或登台.环境变量在bashrc使用开发服务器运行应用程序时,一切正常.
但是当我使用app运行时uWSGI,它似乎没有注意到环境变量并使用默认(开发)设置而不是生产.
我uWSGI在Emperor模式下运行,除了环境变量忽略之外,一切似乎都运行良好.是的,运行的用户uWSGI与bashrc已DJANGO_MODE设置的用户相同.
用于运行的命令uWSGI是 -
exec uwsgi --emperor /etc/uwsgi/vassals --uid web_user --gid --web_user
Run Code Online (Sandbox Code Playgroud)
和ini附庸的文件 -
[uwsgi]
processes = 2
socket = /tmp/uwsgi.sock
wsgi-file = /home/web_user/web/project_dir/project/wsgi.py
chdir = /home/web_user/web/project_dir
virtualenv = /home/web_user/.virtualenvs/production_env
logger = syslog
chmod-socket = 777
Run Code Online (Sandbox Code Playgroud) 如果在依赖项中没有指定分支,npm是否总是从主分支中拉出来?如果我有另一个分支,比如说develop我在那里标记提交怎么办?我知道npm会从特定的分支更新,如果写的话
"private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#develop"
Run Code Online (Sandbox Code Playgroud)
但是如果我想从该分支中提取特定标签呢?因为只是指定标签,就像
"private-repo": "git+ssh://git@github.com:myaccount/myprivate.git#v1.0.1"
Run Code Online (Sandbox Code Playgroud)
没有工作(master分支没有标记的提交.只有develop分支有它).I got a fatal: ambiguous argument 'v1.0.1': unknown revision or path not in the working tree.这让我想到它试图在没有它的分支中找到指定的标签(必须是master分支,因为我只有这两个分支).
那么,有没有办法指定要更新的分支和git-tag?
我有一个django项目,其中有多个配置文件模型,每个模型都有一个用户模型的外键.它django-allauth用于注册.
目前,当使用社交帐户注册时,用户注册,创建用户和社会帐户,然后根据他/她之前选择的配置文件类型以及填写该表单后,将用户重定向到要填写的表单.是创建的正确配置文件类型.
如果用户,socialaccount和配置文件类型实例是在同一步骤中创建的,即在用户填写配置文件特定表单之后,我会喜欢它.无论如何我可以在不改变allauth's代码的情况下做到这一点吗?通过修改allauth来做到这一点并不难,但如果可以帮助我,我宁愿不维护第三方应用程序的自定义副本.
使用自定义适配器是因为它无法访问请求.
我有一个使用子进程调用 unoconv 的 django 应用程序。在我的开发环境中运行时它工作正常,但在生产环境中运行时会出错。
它给出了这个错误
“unoconv:在/usr/lib/libreoffice 中找不到合适的pyuno 库和python 二进制组合错误:没有名为uno 的模块
unoconv:在您的系统上找不到合适的办公安装。错误:请找到您的办公室安装并将您的反馈发送至:http : //github.com/dagwieers/unoconv/issues ”
但是 unoconv 从命令行运行得很好。
由于我将 django 应用程序作为 uwsgi vassal 运行,因此它可能与特权有关,但在我的一生中,我无法弄清楚如何修复它。
PS - django 应用程序不会启动 unoconv 侦听器,它已经在运行。
编辑- 这不是权限问题,而是路径问题,因为 unoconv 是从错误的 Python 解释器(virtualenv 解释器)调用的
我有一个JavaScript对象-
cell{xPos, yPos};
Run Code Online (Sandbox Code Playgroud)
我想创建此对象的二维数组。
cellPrototype = function(x, y) {
this.xPos = x;
this.yPos = y;
}
var cell = new Array();
for(var i=0;i<10;i++)
{
cell[i] = new Array();
for(var j=0;j<10;j++)
{
cell[i][j] = new cellPrototype(i,j);
}
}
Run Code Online (Sandbox Code Playgroud)
此代码无效。也不-
var cellPrototype = function(x, y) {
return {
xPos : x;
yPos : y;
}
var cell = new Array();
for(var i=0;i<10;i++)
{
cell[i] = new Array();
for(var j=0;j<10;j++)
{
cell[i][j] = new cellPrototype(i,j);
}
}
Run Code Online (Sandbox Code Playgroud)
那么,如何在JavaScript中创建对象的2D数组?
我正在尝试在 CentOS 6.4 上安装 Xampp,但这并不能让我继续!
这是输出:
[root@imperius ~]# ./xampp-linux-x64-5.6.3-0-installer.run
----------------------------------------------------------------------------
Welcome to the XAMPP Setup Wizard.
----------------------------------------------------------------------------
Select the components you want to install; clear the components you do not want
to install. Click Next when you are ready to continue.
XAMPP Core Files : Y (Cannot be edited)
XAMPP Developer Files [Y/n] :y
Is the selection above correct? [Y/n]: y
----------------------------------------------------------------------------
Installation Directory
XAMPP will be installed to /opt/lampp
Press [Enter] to continue:
----------------------------------------------------------------------------
Setup is now ready to …Run Code Online (Sandbox Code Playgroud) python ×5
django ×3
distutils ×1
flask ×1
git ×1
installation ×1
javascript ×1
libreoffice ×1
npm ×1
npm-install ×1
php ×1
self ×1
setuptools ×1
static-files ×1
uwsgi ×1
xampp ×1