小编els*_*sar的帖子

Python - 将self传递给外部函数是否可以

我有一个类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吗?

python self

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

使用Flask,我如何将robots.txt和sitemap.xml作为静态文件提供?

我已经安静地阅读了一些提供静态文件的地方应该留给服务器,例如在这个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)

这有什么害处,还是我的方法好吗?

python static-files flask

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

Python模块不会安装

这是我的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)

我一直在使用这两种尝试setuptoolsdistutils,但不会安装我的模块.相反,我得到了

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)

python distutils setuptools

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

BeautifulSoup - 从 findAll 的元素获取类

我正在使用 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)

我不明白这里发生了什么。最终我通过使用异常解决了我的问题,但这有点困扰我。有人能解释一下这里发生了什么吗?

python beautifulsoup

8
推荐指数
1
解决办法
1万
查看次数

Django在通过uWSGI运行时忽略环境变量

我有一个django网站,它使用环境变量DJANGO_MODE来决定使用哪些设置 - 开发或登台.环境变量在bashrc使用开发服务器运行应用程序时,一切正常.

但是当我使用app运行时uWSGI,它似乎没有注意到环境变量并使用默认(开发)设置而不是生产.

uWSGI在Emperor模式下运行,除了环境变量忽略之外,一切似乎都运行良好.是的,运行的用户uWSGIbashrcDJANGO_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)

django uwsgi

8
推荐指数
1
解决办法
6007
查看次数

如何从特定分支和特定标记安装私有NPM模块

如果在依赖项中没有指定分支,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?

git npm npm-install

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

Django-allauth有多个配置文件模型

我有一个django项目,其中有多个配置文件模型,每个模型都有一个用户模型的外键.它django-allauth用于注册.

目前,当使用社交帐户注册时,用户注册,创建用户和社会帐户,然后根据他/她之前选择的配置文件类型以及填写该表单后,将用户重定向到要填写的表单.是创建的正确配置文件类型.

如果用户,socialaccount和配置文件类型实例是在同一步骤中创建的,即在用户填写配置文件特定表单之后,我会喜欢它.无论如何我可以在不改变allauth's代码的情况下做到这一点吗?通过修改allauth来做到这一点并不难,但如果可以帮助我,我宁愿不维护第三方应用程序的自定义副本.

使用自定义适配器是因为它无法访问请求.

django django-allauth

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

从 django 应用程序调用 unoconv 的问题,在 virtualenv 中运行

我有一个使用子进程调用 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 解释器)调用的

python django libreoffice

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

在JavaScript中创建2D对象数组

我有一个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数组?

javascript

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

Xampp 在安装时自动杀死?

我正在尝试在 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)

php xampp installation

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