我需要包含通过公共Github存储库提供的Python包以及我的Python(2.7)包.我的包应该可以通过pip
使用安装setup.py
.
到目前为止,这可以dependency_links
在setup.py
文件中使用:
setuptools.setup(
name="my_package",
version="1.0",
install_requires=[
"other_package==1.2"
],
dependency_links=[
"https://github.com/user/other_package/tarball/master#egg=other_package-1.2"
]
)
Run Code Online (Sandbox Code Playgroud)
当使用--process-dependency-links
标志安装软件包时,这仍然有效,但是dependency_links
功能似乎已被弃用,因为:
pip install git+https://github.com/user/my_package@master#egg=my_package-1.0 --process-dependency-links
Run Code Online (Sandbox Code Playgroud)
给我以下警告:
DEPRECATION: Dependency Links processing has been deprecated and will be removed in a future release.
Run Code Online (Sandbox Code Playgroud)
是否有另一种方法可以git
在setup.py
文件中包含依赖项并支持pip安装?
编辑(2016年10月17日)澄清我的用例:
假设我发现了一个错误other_package
.我在Github上分叉各自的repo,修复bug并发出pull请求.我的拉取请求不会立即被接受(或者永远不会因为不再主动维护包裹).我想my_package
与我的分叉一起分发,other_package
并希望用户能够在my_package
没有任何关于此要求的详细信息的情况下进行安装,并且无需在安装时提供任何其他标志.用户my_package
还应该能够my_package
在自己的自定义包中包含作为要求.
如何实现与不同安装模式(车轮,鸡蛋,开发......)的兼容?
我需要删除具有外键约束和要求的PostgreSQL数据库中的表DROP TABLE ... CASCADE
.
我可以执行原始SQL : engine.execute("DROP TABLE %s CASCADE;" % table.name)
. 但是,我想实现这种行为,以便我可以table.drop(engine)
为postgresql
方言做.
怎么会接近这个?
我正在尝试使用构建并运行两个托管PostgreSQL和Citus扩展的Docker容器ansible-container
。我知道Citus提供了容器,但是我想构建自己的容器。
我的container.yaml
样子如下:
version: '2'
services:
database_master:
image: hackermd/ubuntu-trusty-python
user: postgres
expose:
- 5043
entrypoint: ['dumb-init', '--']
command: ['/usr/bin/pg_ctlcluster', '9.6', 'master', 'start']
links:
- database_worker
depends_on:
- database_worker
database_worker:
image: hackermd/ubuntu-trusty-python
user: postgres
expose:
- 9700
entrypoint: ['dumb-init', '--']
command: ['/usr/bin/pg_ctlcluster', '9.6', 'worker', 'start']
Run Code Online (Sandbox Code Playgroud)
在构建过程中,我可以通过启动和停止集群,pg_ctlcluster
并成功完成。但是,当我随后运行容器时,出现以下错误:
$ docker logs ansible_database_master_1
Removed stale pid file.
Warning: connection to the database failed, disabling startup checks:
psql: FATAL: the database system is starting up
Run Code Online (Sandbox Code Playgroud)
使用容器构建容器command: []
并ps …
我创建了一个包含主键和序列的表,但是稍后通过调试广告查看表设计时,序列不会被应用,只是创建了.
from sqlalchemy import create_engine, MetaData, Table, Column,Integer,String,Boolean,Sequence
from sqlalchemy.orm import mapper, sessionmaker
from sqlalchemy.ext.declarative import declarative_base
import json
class Bookmarks(object):
pass
#----------------------------------------------------------------------
engine = create_engine('postgresql://iser:p@host/sconf', echo=True)
Base = declarative_base()
class Tramo(Base):
__tablename__ = 'tramos'
__mapper_args__ = {'column_prefix':'tramos'}
id = Column(Integer, Sequence('seq_tramos_id', start=1, increment=1),primary_key=True)
nombre = Column(String)
tramo_data = Column(String)
estado = Column(Boolean,default=True)
def __init__(self,nombre,tramo_data):
self.nombre=nombre
self.tramo_data=tramo_data
def __repr__(self):
return '[id:%d][nombre:%s][tramo:%s]' % self.id, self.nombre,self.tramo_data
Session = sessionmaker(bind=engine)
session = Session()
tabla = Tramo.__table__
metadata = Base.metadata
metadata.create_all(engine)
Run Code Online (Sandbox Code Playgroud)
表就是这样创建的
CREATE TABLE …
Run Code Online (Sandbox Code Playgroud)