小编Tom*_*lis的帖子

你如何托管自己的鸡蛋存储库?

假设您正在一个维护大量内部python库(鸡蛋)的团队中,无论出于何种原因,将它们上传到pypi都不是一种选择.你怎么能主持库(鸡蛋),以便easy_install仍然可以为你的团队成员工作?

基本上如果这个工作会很酷....

(someproj)uberdev@hackmo:~$ easy_install myproprietary.lib-dev
user: uberdev 
password:...
fetching......
Searching for myproprietary.lib-dev
Reading http://dev.mycompany.corp/myproprietary.lib-dev
Reading http://dev.mycompany.corp
Reading http://dev.mycompany.corp/dist
Best match: myproprietary.lib-dev
Downloading http://dev.mycompany.corp/dist/myproprietary.lib-dev
Run Code Online (Sandbox Code Playgroud)

我想有一些可以安装的服务器,但我很欣赏专家对此事的一些指导.

谢谢

python

17
推荐指数
1
解决办法
4461
查看次数

在带有非主键的列上使用带有MySQL的SqlAlchemy设置AUTO_INCREMENT?

我无法弄清楚如何使用带有MySQL 5的SqlAlchemy 0.6.0在UNIQUE列上设置AUTO_INCREMENT.

我知道这可以在MySQL中完成,但我不想分发额外的.sql脚本来为我的应用程序设置数据库.我希望SqlAlchemy从Python中构建模式.

到目前为止,我发现有两种方法可以使列成为SqlAlchemy中的自动递增类型列:

  1. 它是sqlalchemy.types.Integer表中第一列在其定义中设置primary_key=True和未autoincrement=False设置的列.
    • 使用MSSQL,这会INDEX(m,n)为列添加属性.
    • 使用Postgres会导致使用SERIAL列类型.
    • 使用MySQL将AUTO_INCREMENT属性添加到列.
  2. 它是一个sqlalchemy.types.Integer列,并以sqlalchemy.schema.Sequence对象作为参数进行实例化.
    • 使用MSSQL,这会INDEX(m,n)为列添加属性.
    • 使用Postgres会导致使用SERIAL列类型.
    • 使用MySQL这似乎被忽略了.

所以我不能使用#1,因为我想要auto_increment的列不在主键中(也不应该).我不能使用#2,因为它不适用于MySQL.

基本上,我定义表的代码如下所示:

from sqlalchemy import Column
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.schema import Sequence
from sqlalchemy.types import Integer, Unicode
Base = declarative_base()

class Person(Base):
    __tablename__ = "person"
    id = Column(Integer, nullable=False, unique=True)
    first_name = Column(Unicode(100), nullable=False, primary_key=True)
    last_name = Column(Unicode(100), nullable=False, primary_key=True)
Run Code Online (Sandbox Code Playgroud)

并生成此SQL来创建表:

CREATE TABLE person ( …
Run Code Online (Sandbox Code Playgroud)

mysql sqlalchemy auto-increment

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

在emacs中从virtualenv指定python解释器

今天我一直在尝试将更多与Python相关的模式带入我的Emacs配置中,但我没有太多运气.

首先我注意到的是,根据Emacs的启动方式(终端vs桌面),它决定使用的解释器是不同的.

  • 从KDE菜单启动:M-! which python给出/usr/bin/python

  • 从终端发起:M-! which python给出~/local/bin/python

我可以接受这个,因为我的.bashrc〜/ local/bin附加 到路径上,我猜KDE默认忽略它.我可以解决这个问题,但是我不明白的是,如果我激活virtualenv,我会期望M-!哪个python指向 〜/ project.env/bin/python但是它仍然指向〜/ local/bin/python.

因此,当我M-x py-shell,我得到〜/ local/bin/python所以如果我尝试 M-x py-execute-buffer在virtualenv中的一个包中驻留的模块,py-shell会抱怨在virtualenv中也不知道模块.

py-python-command设置为"〜/ project.env/bin/python"似乎在加载所有内容后无效.

所以我想我的问题的总体症结是,如何让所有与python相关的emacs东西指向正确的解释器?

python emacs virtualenv

12
推荐指数
1
解决办法
6088
查看次数

Emacs:调试python的方法

我使用emacs来满足我的所有代码编辑需求.通常情况下,我会使用Mx编译来运行我的测试运行器,我会说我得到了大约70%的我需要做的事情,以保持代码正常,但最近我一直想知道如何使用Mx pdb打破断点并检查事情会很好的场合.

在我的谷歌搜索中,我发现了一些表明这是有用/可能的事情.但是我还没有设法让它以我完全理解的方式运作.

我不知道是否是buildout + appengine的组合可能会让它变得更加困难但是当我尝试做类似的事情时

M-x pdb
Run pdb (like this): /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
Run Code Online (Sandbox Code Playgroud)

其中.../bin/python是解释器buildout使用为所有egg设置的路径.

〜/ bin/pdb是一个使用当前python解释器调用pdb.main的简单脚本

HellooKitty:hydrant twillis$ cat ~/bin/pdb
#! /usr/bin/env python

if __name__ == "__main__":
    import sys
    sys.version_info
    import pdb
    pdb.main()
HellooKitty:hydrant twillis$ 
Run Code Online (Sandbox Code Playgroud)

.../bin/devappserver是buildout配方为gae项目制作的dev_appserver脚本,而.../parts/hydrant-app是app.yaml的路径

我第一次收到提示

Current directory is /Users/twillis/bin/
C-c C-f
Run Code Online (Sandbox Code Playgroud)

什么都没发生,但是

HellooKitty:hydrant twillis$ ps aux | grep pdb
twillis    469 100.0  1.6   168488  67188 s002  Rs+   1:03PM   0:52.19 /usr/local/bin/python2.5 /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
twillis    477   0.0  0.0  2435120    420 s000 …
Run Code Online (Sandbox Code Playgroud)

python emacs google-app-engine

9
推荐指数
1
解决办法
588
查看次数

Emacs:调试python的方法

我在programmers.stackexchange.com上发布了这个,但我认为它可能更适合SO.

我使用emacs来满足我的所有代码编辑需求.通常情况下,我会使用Mx编译来运行我的测试运行器,我会说我得到了大约70%的我需要做的事情,以保持代码正常,但最近我一直想知道如何使用Mx pdb打破断点并检查事情会很好的场合.

在我的谷歌搜索中,我发现了一些表明这是有用/可能的事情.但是我还没有设法让它以我完全理解的方式运作.

我不知道是否是buildout + appengine的组合可能会让它变得更加困难但是当我尝试做类似的事情时

M-x pdb
Run pdb (like this): /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
Run Code Online (Sandbox Code Playgroud)

其中.../bin/python是解释器buildout使用为所有egg设置的路径.

〜/ bin/pdb是一个使用当前python解释器调用pdb.main的简单脚本

HellooKitty:hydrant twillis$ cat ~/bin/pdb
#! /usr/bin/env python

if __name__ == "__main__":
    import sys
    sys.version_info
    import pdb
    pdb.main()
HellooKitty:hydrant twillis$ 
Run Code Online (Sandbox Code Playgroud)

.../bin/devappserver是buildout配方为gae项目制作的dev_appserver脚本,而.../parts/hydrant-app是app.yaml的路径

我第一次收到提示

Current directory is /Users/twillis/bin/
C-c C-f
Run Code Online (Sandbox Code Playgroud)

什么都没发生,但是

HellooKitty:hydrant twillis$ ps aux | grep pdb
twillis    469 100.0  1.6   168488  67188 s002  Rs+   1:03PM   0:52.19 /usr/local/bin/python2.5 /Users/twillis/projects/hydrant/bin/python /Users/twillis/bin/pdb /Users/twillis/projects/hydrant/bin/devappserver /Users/twillis/projects/hydrant/parts/hydrant-app/
twillis    477   0.0  0.0 …
Run Code Online (Sandbox Code Playgroud)

python emacs google-app-engine

7
推荐指数
1
解决办法
703
查看次数