小编Ste*_*yer的帖子

在Python开发中使用共享模块的正确方法是什么?

我正在努力将Python作为我团队开发工具套件的一部分.使用我们使用的其他语言/工具,我们开发了许多可重用的函数和类,这些函数和类特定于我们的工作.这标准化了我们做事的方式,并节省了大量的车轮重新发明.

我似乎无法找到通常用Python处理它的任何示例.现在我在本地驱动器上有一个开发文件夹,下面有多个项目文件夹,还有一个包含可重复使用的类和函数的包和模块的附加"公共"文件夹.这些"通用"模块由多个项目中的模块导入.

Development/
    Common/
        Package_a/
        Package_b/
    Project1/
        Package1_1/
        Package1_2/
    Project2/
        Package2_1/
        Package2_2/
Run Code Online (Sandbox Code Playgroud)

在尝试学习如何分发Python应用程序时,似乎假设所有引用的包都低于顶级项目文件夹,而不是它的附属物.我还想到,也许正确的方法是在单独的项目中开发通用/框架模块,并且经过测试,通过安装到site-packages文件夹将它们部署到每个开发人员的环境中.然而,这也引发了重新分配的问题.

任何人都可以阐明这一点,或者指出我讨论这个问题的资源?

python distutils python-3.x

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

在__init__方法中设置初始Django表单字段值

Django 1.6

我在Django表单类中有一个工作代码块,如下所示.我正在构建表单字段列表的数据集可以包含任何字段的初始值,而我在表单中设置该初始值时没有成功.if field_value:下面的块确实填充了初始表单字典属性,但未显示初始值.请注意(如果您想知道)该.initial属性在super()调用之后才存在.

可以这样做吗?

如果是这样,那么我做得不好的事情呢?

谢谢!

def __init__(self, *args, **kwargs):
    id = kwargs.pop('values_id', 0)
    super(LaunchForm, self).__init__(*args, **kwargs)
    # Lotsa code here that uses the id value
    # to execute a query and build the form
    # fields and their attributes from the 
    # result set

    if field_value:
        self.initial[field_name] = field_value
Run Code Online (Sandbox Code Playgroud)

python django django-1.6

34
推荐指数
3
解决办法
4万
查看次数

对setup.py中的package_dir和packages设置感到困惑

这是我的项目目录结构,其中包括项目文件夹,以及一个"framework"文件夹,其中包含在多个项目中共享的包和模块,这些项目位于层次结构中与项目文件夹相同的级别:

--------------------------------------------------------------
Framework/
    package1/
        __init__.py
        mod1.py
        mod2.py
    package2/
        __init__.py
        moda.py
        modb.py

My_Project/
    src/
        main_package/
             __init__.py
             main_module.py
    setup.py
    README.txt
--------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

以下是我的setup.py文件内容的部分列表:

--------------------------------------------------------------
from distutils.core import setup

setup(packages=['package1',
        'package2.moda',
        'main_package'],
    package_dir={'package1': '../Framework/package1', 
        'package2.moda': '../Framework/package2', 
        'main_package': 'src/main_package'})

--------------------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

以下是问题:

  1. 没有创建dist或build目录

  2. 创建了清单文件,但列出了package2中的所有模块,而不仅仅是"moda.py"模块

  3. 构建终止时出现错误:README.txt:函数不正确

我不知道我是否有一个问题(可能与我的目录结构有关)或者我是否有多个问题,但我已经阅读了有关Python应用程序分发的所有内容,而且我很难过.

python distutils

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

标签 统计

python ×3

distutils ×2

django ×1

django-1.6 ×1

python-3.x ×1