我跑的时候
python setup.py sdist
Run Code Online (Sandbox Code Playgroud)
它在我的./dist目录中创建了一个sdist.这包括我的"dist"文件夹中的zip中的"PROJECT-egg.info"文件,我没有使用它,但它不会伤害我,所以我只是忽略它.
我的问题是,为什么它也建立在我的项目根目录下的"PROJECT-egg.info"文件夹?我可以让它停止创建吗?如果没有,我可以在创建sdist后立即删除它吗?
我正在使用从setuptools导入的'setup'功能.WindowsXP,Python2.7,Setuptools 0.6c11,分发0.6.14.
我的设置配置如下:
{'author': 'Jonathan Hartley',
'author_email': 'tartley@tartley.com',
'classifiers': ['Development Status :: 1 - Planning',
'Intended Audience :: Developers',
'License :: OSI Approved :: BSD License',
'Operating System :: Microsoft :: Windows',
'Programming Language :: Python :: 2.7'],
'console': [{'script': 'demo.py'}],
'data_files': [('Microsoft.VC90.CRT',
['..\\lib\\Microsoft.VC90.CRT\\Microsoft.VC90.CRT.manifest',
'..\\lib\\Microsoft.VC90.CRT\\msvcr90.dll'])],
'description': 'Utilities for games and OpenGL graphics, built around Pyglet.\n',
'keywords': '',
'license': 'BSD',
'long_description': "blah blah blah",
'name': 'pygpen',
'options': {'py2exe': {'ascii': True,
'bundle_files': 1,
'dist_dir': …Run Code Online (Sandbox Code Playgroud) 代码是sqlahcmey的orm教程的逐步复制,除了最后一行,我打算在查询后删除所有表.但程序阻塞Base.metadata.drop_all(bind=engine),下面是MySQL的状态(取自MySQL Workbench):

由于标线显示,删除表的过程被绞死由于
table metadata lock,我建议元数据锁由引起的result = session.query(User).all(),因为如果该行移除该程序没有阻止,但我还是不知道原因.所以我的问题是:为什么会发生这种情况,如何避免阻塞
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from sqlalchemy import create_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import Column, Integer, String
Base = declarative_base()
class User(Base):
__tablename__ = 'users'
id = Column(Integer, primary_key=True)
name = Column(String(16))
fullname = Column(String(16))
password = Column(String(16))
def __init__(self, name, fullname, password):
self.name = name
self.fullname = fullname
self.password = password
def __repr__(self):
return "<User('%s','%s', '%s')>" …Run Code Online (Sandbox Code Playgroud)