标签: python-module

Python 模块变得太大

我的模块全部位于一个大文件中,该文件越来越难以维护。打破事物的标准方式是什么?

我的文件中有一个模块my_module.py,我像这样导入它:

import my_module
Run Code Online (Sandbox Code Playgroud)

“my_module”很快就会有一千行,这正在突破我保持一切正常的能力的极限。我正在考虑添加文件my_module_base.pymy_module_blah.py等等,然后替换my_module.py

from my_module_base import *
from my_module_blah import *
# etc.
Run Code Online (Sandbox Code Playgroud)

然后,用户代码不需要更改:

import my_module  # still works...
Run Code Online (Sandbox Code Playgroud)

这是标准模式吗?

python python-module

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

Pypi:是否可以设置 git 自动更新 PyPi 上的包?

例如,如果我有一个fooPypi 上已有的包。我希望能够git push origin master在我的 中使用新的版本号setup.py,然后 Pypi 以某种方式自动更新其版本/源代码。这可能吗?如果没有,是否有人可以分享一些类似的工作流程?这是我第一次为 Pypi 做出贡献,我想让体验尽可能轻松。

python python-module pypi

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

Python - 导入包失败

我在导入包时遇到问题。我的文件结构是这样的:

filelib/  
    __init__.py
    converters/ 
        __init__.py
        cmp2locus.py
    modelmaker/ 
        __init__.py
        command_file.py
Run Code Online (Sandbox Code Playgroud)

在模块中command_file.py,我有一个名为CommandFile我想在其中调用的类cmp2locus.py模块中调用的类。

我在模块中尝试了以下操作cmp2locus.py

import filelib.modelmaker.command_file
import modelmaker.command_file
from filelib.modelmaker.command_file import CommandFile
Run Code Online (Sandbox Code Playgroud)

所有这些选项都会返回ImportError: No modules named ... 感谢任何有关解决此问题的提示。我不明白为什么这个导入不起作用。

python python-module python-import python-packaging

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

使用 python 中 xlsxwriter 的 data_validation() 方法中的 validate 作为列表从源设置默认值?

我使用 python 中的xlsxwriter模块创建了一个 Excel 工作表。我试图为使用 xlsxwriter 的 data_validation() 方法创建的下拉列表设置默认值。
但是,根据xlsxwriter的文档,如果我们使用validate as list,它没有默认值。

sheet.data_validation('G5', {'validate': 'list',
                             'source': ['Completed',
                                        'Pending',
                                        'Script Error']})
Run Code Online (Sandbox Code Playgroud)

谁能建议我一些解决办法,在同一单元格中设置默认值和下拉列表?

python excel python-module python-3.x xlsxwriter

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

Python 模块未出现在 sys.modules 中

我通过解压 tar.gz 并运行 setup.py 安装了一些软件包。

我正在检查

>>> import sys
>>> '[packagename]' in sys.modules
Run Code Online (Sandbox Code Playgroud)

但它一直在说False,对于他们所有人。我错过了什么?

python installation packages python-module

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

使用Python模块Glom,将不规则嵌套列表提取到扁平字典列表中

Glom 使访问复杂的嵌套数据结构变得更加容易。 https://github.com/mahmoud/glom

给定以下玩具数据结构:

target = [
            {
                'user_id': 198,
                'id': 504508,
                'first_name': 'John',
                'last_name': 'Doe',
                'active': True,
                'email_address': 'jd@test.com',
                'new_orders': False,
                'addresses': [
                    {
                        'location': 'home',
                        'address': 300,
                        'street': 'Fulton Rd.'
                    }
                ]
            },
            {
                'user_id': 209,
                'id': 504508,
                'first_name': 'Jane',
                'last_name': 'Doe',
                'active': True,
                'email_address': 'jd@test.com',
                'new_orders': True,
                'addresses': [
                    {
                        'location': 'home',
                        'address': 251,
                        'street': 'Maverick Dr.'
                    },
                    {
                        'location': 'work',
                        'address': 4532,
                        'street':  'Fulton Cir.'
                    },
                ]
            },
        ]
Run Code Online (Sandbox Code Playgroud)

我试图将数据结构中的所有地址字段提取到扁平的字典列表中。

from glom import glom as glom …
Run Code Online (Sandbox Code Playgroud)

python nested python-module data-structures glom

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

Google Colab 在下载数据集或将新包导入 colab notebook 时是否会使用我的互联网流量?

例如,当从 Keras 导入 CIFAR-10(使用
from keras.datasets import cifar10 (x_train, y_train), (x_test, y_test) = cifar10.load_data()
或临时安装 HAZM(NLTK 的波斯形式)之类的软件包时,该软件包!pip install hazm未预装在 Google Colab 上,包含 import 语句的单元格开始下载它需要的材料。我想知道我的互联网流量是否用于下载过程,还是发生在 Google 云服务器上,而我的互联网连接仅用于运行代码?谢谢。

python python-module python-3.x google-colaboratory

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

我应该从 __dir__ 方法隐藏 python 模块中依赖项的导入吗?

我正在使用单个导入包制作一个 Python 分发包,该导入包具有多个模块(一个文件夹,多个文件)。该包具有在模块中导入的依赖项。当用户从导入包导入模块时,他们还可以访问在函数外部导入的依赖项。我已经找到了解决方法,但我不确定这是否是一个好主意。

模块joke.py的选项A

from markdown import markdown

def joke():
    return markdown("The Funniest Joke in the World")

Run Code Online (Sandbox Code Playgroud)

joke.py 模块的选项 B

def joke():
    from markdown import markdown
    return markdown("The Funniest Joke in the World")

Run Code Online (Sandbox Code Playgroud)

A在交互模式下的使用

>>> import joke
>>> joke.joke()
'The Funniest Joke in the World'
>>> dir(joke)
['__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', 'joke', 'markdown']
>>> joke.markdown("Not funny")
'<p>Not funny</p>'
Run Code Online (Sandbox Code Playgroud)

B在交互模式下的使用

>>> import joke
>>> dir(joke)
['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__file__', '__cached__', '__builtins__', 'joke', 'markdown']
>>> joke.markdown("Not …
Run Code Online (Sandbox Code Playgroud)

python python-module python-import python-3.x

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

如何按名称导入自定义python包

我创建了一个名为"custom_module"的文件夹,我在文件夹中有__init__.py,其中包含:

__all__ = [
        'Submodule1',
        'Submodule2'
]
Run Code Online (Sandbox Code Playgroud)

从我阅读的文档中我应该可以调用import custom_module并获取对包的访问权限,但是这不会发生.如何让python识别我的包?我正在使用python 3.2

更新: 包不在python文件夹中.python环境如何找到它,因此我可以通过名称成功导入它.

python module python-module python-3.x

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

Python内部 - 对象如何知道全局变量?

我最近发现了一些有趣的行为让我想知道对象如何知道存在哪些全局变量.例如,假设我有一个文件"test.py":

globalVar = 1
toDelete = 2

class Test(object):
    classVar = 3

    def runTest1(self):
        print globalVar
        print toDelete
        print missingVar

    def runTest2(self):
        print self.classVar
        print toCreate
        print missingVar
Run Code Online (Sandbox Code Playgroud)

然后在交互式shell中我这样做:

>>> import test
>>> tester = test.Test()
>>> tester.runTest1()
1
2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "test.py", line 10, in runTest1
    print missingVar
NameError: global name 'missingVar' is not defined
>>> tester.runTest2()
3
Traceback (most recent call last):
  File "<stdin>", line 1, in <module> …
Run Code Online (Sandbox Code Playgroud)

python python-module global-variables python-import python-2.7

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