我的模块全部位于一个大文件中,该文件越来越难以维护。打破事物的标准方式是什么?
我的文件中有一个模块my_module.py,我像这样导入它:
import my_module
Run Code Online (Sandbox Code Playgroud)
“my_module”很快就会有一千行,这正在突破我保持一切正常的能力的极限。我正在考虑添加文件my_module_base.py,my_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)
这是标准模式吗?
例如,如果我有一个fooPypi 上已有的包。我希望能够git push origin master在我的 中使用新的版本号setup.py,然后 Pypi 以某种方式自动更新其版本/源代码。这可能吗?如果没有,是否有人可以分享一些类似的工作流程?这是我第一次为 Pypi 做出贡献,我想让体验尽可能轻松。
我在导入包时遇到问题。我的文件结构是这样的:
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 中的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)
谁能建议我一些解决办法,在同一单元格中设置默认值和下拉列表?
我通过解压 tar.gz 并运行 setup.py 安装了一些软件包。
我正在检查
>>> import sys
>>> '[packagename]' in sys.modules
Run Code Online (Sandbox Code Playgroud)
但它一直在说False,对于他们所有人。我错过了什么?
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) 例如,当从 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 分发包,该导入包具有多个模块(一个文件夹,多个文件)。该包具有在模块中导入的依赖项。当用户从导入包导入模块时,他们还可以访问在函数外部导入的依赖项。我已经找到了解决方法,但我不确定这是否是一个好主意。
from markdown import markdown
def joke():
return markdown("The Funniest Joke in the World")
Run Code Online (Sandbox Code Playgroud)
def joke():
from markdown import markdown
return markdown("The Funniest Joke in the World")
Run Code Online (Sandbox Code Playgroud)
>>> 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)
>>> import joke
>>> dir(joke)
['__name__', '__doc__', '__package__', '__loader__', '__spec__', '__file__', '__cached__', '__builtins__', 'joke', 'markdown']
>>> joke.markdown("Not …Run Code Online (Sandbox Code Playgroud) 我创建了一个名为"custom_module"的文件夹,我在文件夹中有__init__.py,其中包含:
__all__ = [
'Submodule1',
'Submodule2'
]
Run Code Online (Sandbox Code Playgroud)
从我阅读的文档中我应该可以调用import custom_module并获取对包的访问权限,但是这不会发生.如何让python识别我的包?我正在使用python 3.2
更新: 包不在python文件夹中.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
python ×10
python-module ×10
python-3.x ×4
excel ×1
glom ×1
installation ×1
module ×1
nested ×1
packages ×1
pypi ×1
python-2.7 ×1
xlsxwriter ×1