标签: python-module

在Django视图中高效导入模块

我想知道 - 人们如何处理在django视图中导入大量常用模块?最有效的方法是什么?

比如,我有一些观点,比如

admin_views.py
search_views.py
.
.
Run Code Online (Sandbox Code Playgroud)

从我所看到的,他们每个人都需要使用HttpResponse或其他常用的模块.此外,他们中的一些人需要像BeautifulSoup这样的东西,而其他人则需要其他东西(md5,auth等).

我在启动项目时所做的是创建一个include_all.py包含大部分常见导入的内容,然后在视图中添加这些特定内容.所以,我有类似的东西,

admin_views.py

from include_all import *
... 
[list of specific module imports for admin]
...
Run Code Online (Sandbox Code Playgroud)

search_views.py

from include_all import *
... 
[list of specific module imports for search]
...
Run Code Online (Sandbox Code Playgroud)

随着时间的推移,include_all成为一个misc文件,其中包含任何需要的东西 - 因此,许多视图最终导入了他们不需要的模块.

这会影响效率吗?也就是说,python(django?)是否导入所有模块一次并存储/缓存它们,以便需要它们的任何其他视图不必再次导入它?或者我调用这个长文件的方法效率很低 - 我最好坚持在每个视图中单独导入这些模块?

对于这类事情有没有最佳做法?

谢谢!

python django import performance python-module

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

Python 2.6.1:检查是否存在导入

我已经为Python 2.6.1的一些同事的Mac OSX编写了一个实用程序脚本.由于它们没有安装所有必需的模块,我有一个try-except import子句:

try:
    import argparse
except ImportError:
    print "argparse module missing: Please run 'sudo easy_install argparse'"
    sys.exit(1)
Run Code Online (Sandbox Code Playgroud)

我很确定有更优雅的方法来处理这个问题.有任何想法吗?

python macos python-module python-import

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

检查.isfunction 不适用于所有模块?

我正在尝试使用是否可以列出模块中的所有函数的答案列出一系列模块中的功能。但在我的口译员中,我得到如下:

Python 3.3.2 (v3.3.2:d047928ae3f6, May 16 2013, 00:03:43) [MSC v.1600 32 bit (In
tel)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import inspect
>>> import math
>>> math.pow(5,4)
625.0
>>> inspect.getmembers(math, inspect.isfunction)
[]
>>> inspect.getmembers(inspect, inspect.isfunction)
[('_check_class', <function _check_class at 0x00C9F9C0>), ('_check_instance', <f
unction _check_instance at 0x00C9F978>), ('_get_user_defined_method', <function
_get_user_defined_method at 0x00C9FB70>), ('_getfullargs', <function _getfullarg
s at 0x00C6A4F8>), ('_is_type', <function _is_type at 0x00C9FA08>), ('_missing_a
rguments', <function _missing_arguments at 0x00C9F198>), ('_shadowed_dict', <fun …
Run Code Online (Sandbox Code Playgroud)

python python-module inspect

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

如何在 Python 3 中使用 Python 2 中的 .so 模块?

可能我的问题很明显,但我找不到明显的决定。

有 Python 2.6+ 扩展名为auditauparse。这些是与audit-libs-python包一起分发的动态库:

[vitaly@thermaltake tmp]$ repoquery -lq audit-libs-python
/usr/lib64/python2.7/site-packages/_audit.so
/usr/lib64/python2.7/site-packages/audit.py
/usr/lib64/python2.7/site-packages/audit.pyc
/usr/lib64/python2.7/site-packages/audit.pyo
/usr/lib64/python2.7/site-packages/auparse.so
Run Code Online (Sandbox Code Playgroud)

我想在最新的 Python 解释器中使用这个扩展,因为怀疑在 python 2.6+ 中对动态内存的处理不正确。出于某种原因,我无法从 Python 3.3 加载它们:

[vitaly@thermaltake ~]$ python3.3
Python 3.3.2 (default, Mar  5 2014, 08:21:05) 
[GCC 4.8.2 20131212 (Red Hat 4.8.2-7)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.path.append("/usr/lib64/python2.7/site-packages/")
>>> import auparse
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: /usr/lib64/python2.7/site-packages/auparse.so: …
Run Code Online (Sandbox Code Playgroud)

python linux python-module shared-libraries

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

在 __init__.py 中声明的导入对象

我无法理解在 '__init__.py' 中声明的对象是/应该如何导入到其他文件中。

我有一个像这样的目录结构

top/
 |
 |_lib/
    |_ __init__.py
    |_ one.py
Run Code Online (Sandbox Code Playgroud)

文件内容如下

库/__init__.py

a=object()
Run Code Online (Sandbox Code Playgroud)

库/一个.py

from lib import a
Run Code Online (Sandbox Code Playgroud)

这是问题所在。如果我从top目录中触发 python shell ,则以下命令运行良好

>>> from lib.one import a
Run Code Online (Sandbox Code Playgroud)

但是,如果我将目录更改为top/lib并在新的 python shell 中触发类似的命令,则会出现错误。

>>>  from one import a
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "one.py", line 1, in <module>
  from lib import a
ImportError: No module named lib
Run Code Online (Sandbox Code Playgroud)

当然,我可以这样改变one.py,这将使一切正常。

from __init__ import a
Run Code Online (Sandbox Code Playgroud)

但我真的很想理解,为什么 import 命令是从top目录而不是从top/lib …

python python-module

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

AttributeError: 模块“分数”没有属性“分数”

我想开始研究 Python 中的分数模块。我使用 Atom 编辑器和包“脚本”来从编辑器运行模块。所以,我在尝试制作简单的分数对象时遇到了这个错误:

AttributeError: 模块“分数”没有属性“分数”

代码:

import fractions
f = fractions.Fraction(3, 4) + 1 + 1.5
print(f)
Run Code Online (Sandbox Code Playgroud)

怎么了?Python解释器可以毫无问题地使用它。

python python-module atom-editor

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

Python NLTK对齐导入错误

我为NLTK的对齐模块得到一个奇怪的导入错误:

$ python2 --version
Python 2.7.10
$ pip2 freeze | grep nltk
nltk==3.2
$ python2
Python 2.7.10 (default, Oct 23 2015, 18:05:06) 
[GCC 4.2.1 Compatible Apple LLVM 7.0.0 (clang-700.0.59.5)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import nltk
>>> from nltk.align import AlignedSent
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named align
Run Code Online (Sandbox Code Playgroud)

如您所见,我为python 2.7安装了nltk 3.2.我可以nltk直接导入.但是,我无法访问该align模块.

我知道我使用的import语句是正确的,因为我直接从官方文档中获取它.另外,我查看了从NLTK 2到NLTK 3的接口更改,并没有提到该align模块. …

python python-module nltk python-import

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

模块在Python中有类型吗?

我正在读PEP338.有些话困惑我:

如果找到模块,并且是类型 PY_SOURCEPY_COMPILED,然后在命令行被有效地从重新解释python <options> -m <module> <args>python <options> <filename> <args>.

模块在Python中有类型吗?

python python-module

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

Python:AttributeError模块x没有属性y

我有一个目录结构如下的项目

.
??? Pipfile
??? Pipfile.lock
??? module
?   ??? __init__.py
?   ??? helpers
?   ?   ??? __init__.py
?   ?   ??? __pycache__
?   ?   ?   ??? __init__.cpython-36.pyc
?   ?   ??? dynamo.py
?   ?   ??? logger.py
?   ??? test.py
Run Code Online (Sandbox Code Playgroud)

相关代码

logger.py

import click
import sys
from tabulate import tabulate


def formatter(string, *rest):
    return string.format(*rest)


def info(*rest):
    """Write text in blue color
    """
    click.echo(click.style('? ' + formatter(*rest), fg='blue'))
Run Code Online (Sandbox Code Playgroud)

test.py

import helpers

helpers.logger.info('Trying')
Run Code Online (Sandbox Code Playgroud)

当我尝试使用命令运行

python3 module/test.py
Run Code Online (Sandbox Code Playgroud)

我得到这个错误

Traceback (most recent call last):
  File …
Run Code Online (Sandbox Code Playgroud)

python module python-module python-3.x pipenv

3
推荐指数
2
解决办法
5449
查看次数

sys模块是否构建在每个python解释器中是什么意思?

我正在阅读官方的Python教程,它说

一个特定的模块值得注意:sys,它内置于每个Python解释器中.

但是,如果我启动python解释器并输入,例如sys.path,我得到了一个NameError: name sys is not defined.

因此,sys如果我想要访问它,我需要导入.

那么它是什么意思"它内置于每个python解释器中"?

python python-module built-in python-3.x

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