我想知道是否有任何方法可以告诉pip,特别是在一个需求文件中,安装一个包含最小版本(pip install package>=0.2)和最小版本的软件包(应该永远不会安装)(理论上的api :) pip install package<0.3.
我问,因为我正在使用正在积极开发的第三方库.我希望我的pip需求文件指定它应该始终安装0.5.x分支的最新次要版本,但我不希望pip尝试安装任何较新的主要版本(如0.6.x) API不同.这很重要,因为即使0.6.x分支可用,开发人员仍然会向0.5.x分支发布补丁和错误修正,因此我不想package==0.5.9在我的需求文件中使用静态行.
有没有办法做到这一点?
使用SQLAlchemy 0.7.1和MySQL 5.1数据库,我建立了多对多关系,如下所示:
user_groups = Table('user_groups', Base.metadata,
Column('user_id', String(128), ForeignKey('users.username')),
Column('group_id', Integer, ForeignKey('groups.id'))
)
class ZKUser(Base, ZKTableAudit):
__tablename__ = 'users'
username = Column(String(128), primary_key=True)
first_name = Column(String(512))
last_name = Column(String(512))
groups = relationship(ZKGroup, secondary=user_groups, backref='users')
class ZKGroup(Base, ZKTableAudit):
__tablename__ = 'groups'
id = Column(Integer, primary_key=True)
name = Column(String(512))
Run Code Online (Sandbox Code Playgroud)
用户可以属于多个组,而组可以包含多个用户.
我正在尝试做的是构建一个SQLAlchemy查询,该查询仅返回属于组列表中至少一个组的用户.
我玩这个in_函数,但这似乎只适用于测试列表中成员资格的标量值.我不是一个SQL编写者,所以我甚至不知道SELECT这需要什么样的声明.
我目前正在测试一个以字典形式返回大量JSON数据的Web服务.这些字典的键和值都是unicode字符串,因此它们打印出来
{u'key1':u'value', u'key2':u'value2'}
Run Code Online (Sandbox Code Playgroud)
在交互式解释器中打印到屏幕时.
现在想象一下,这是一个3级深度,40元素的字典.所有这些u字符都会使显示屏混乱,因此很难一目了然地看出实际数据究竟是什么.即使使用pprint.
有没有办法告诉解释器我不关心普通字符串和unicode字符串之间的区别?我不需要或想要你.
我发现的唯一可能有帮助的是PYTHONIOENCODING环境变量.不幸的是,将它设置为'ascii'或'latin-1'并不会让你自己消失.
我正在使用Python 2.6,我使用常规python解释器或iPython.
我花了一段时间,但我想出了如何使用SQLAlchemy来模拟两种不同类型的数据库之间的关系:
Base = declarative_base()
class Survey(Base):
__tablename__ = 'SURVEY'
survey_id = Column("SURVEY_ID", Integer, primary_key=True)
term_id = Column("TERM_ID", Integer, nullable=False)
# Because the TERM table is in Oracle, but the SURVEY table is in
# MySQL, I can't rely on SQLAlchemy's ForeignKey. Thus,
# I need to specify the relationship entirely by hand, like so:
term = relationship("Term",
primaryjoin="Term.term_id==Survey.term_id",
foreign_keys=[term_id],
backref="surveys"
)
class Term(Base):
__tablename__ = 'TERM'
term_id = Column(Integer, primary_key=True)
term_name = Column(String(30))
start_date = Column(Date)
end_date = Column(Date)
mysql_engine …Run Code Online (Sandbox Code Playgroud) 我真的很难理解Twitter如何期望其API用户将其发送的明文推文转换为正确链接的HTML.
这是交易:当您请求推文的详细数据时,Twitter的JSON API会发回这组信息:
{
"created_at":"Wed Jul 18 01:03:31 +0000 2012",
"id":225395341250412544,
"id_str":"225395341250412544",
"text":"This is a test tweet. #boring @nbc http://t.co/LUfDreY6 #skronk @crux http://t.co/VpuMlaDs @twitter",
"source":"web",
"truncated":false,
"in_reply_to_status_id":null,
"in_reply_to_status_id_str":null,
"in_reply_to_user_id":null,
"in_reply_to_user_id_str":null,
"in_reply_to_screen_name":null,
"user": <REDACTED>,
"geo":null,
"coordinates":null,
"place":null,
"contributors":null,
"retweet_count":0,
"entities":{
"hashtags":[
{
"text":"boring",
"indices":[22,29]
},
{
"text":"skronk",
"indices":[56,63]
}
],
"urls":[
{
"url":"http://t.co/LUfDreY6",
"expanded_url":"http://www.twitter.com",
"display_url":"twitter.com",
"indices":[35,55]
},
{
"url":"http://t.co/VpuMlaDs",
"expanded_url":"http://www.example.com",
"display_url":"example.com",
"indices":[70,90]
}
],
"user_mentions":[
{
"screen_name":"nbc",
"name":"NBC",
"id":26585095,
"id_str":"26585095",
"indices":[30,34]
},
{
"screen_name":"crux",
"name":"Z. D. Smith",
"id":407213,
"id_str":"407213",
"indices":[64,69]
}, …Run Code Online (Sandbox Code Playgroud) 我有一个dict字符串型键,其确切的值我不知道(因为它们是在其他地方动态生成的).但是,我知道我想要的密钥包含一个特定的子字符串,并且具有此子字符串的单个密钥肯定在dict中.
检索此密钥的值的最佳或"最pythonic"方法是什么?
我想到了两个策略,但两个都让我感到烦恼:
for k,v in some_dict.items():
if 'substring' in k:
value = v
break
Run Code Online (Sandbox Code Playgroud)
- 要么 -
value = [v for (k,v) in some_dict.items() if 'substring' in k][0]
Run Code Online (Sandbox Code Playgroud)
第一种方法是笨重而且有点难看,而第二种方法更干净,但是索引到列表理解中的额外步骤[0]让我感到烦恼.是否有更好的方式来表达第二个版本,或者更简洁的方式来编写第一个版本?
我已经使用git几年了,并且每次偶尔进行一次合并时,git会报告一些奇怪的冲突.这是一个.htaccess文件的例子,从我合并到Drupal核心的新7.24版本开始:
# Protect files and directories from prying eyes.
<FilesMatch "\.(engine|inc|info|install|make|module|profile|test|po|sh|.*sql|theme|tpl(\.php)?|xtmpl)(~|\.sw[op]|\.bak|\.orig|\.save)?$|^(\..*|Entries.*|Repository|Root|Tag|Template)$|^#.*#$|\.php(~|\.sw[op]|\.bak|\.orig\.save)$">
<<<<<<< HEAD
Order allow,deny
</FilesMatch>
# Hide important scripts from malicious users.
<FilesMatch "^(autoinstall\.php|install\.php|update\.php)$">
=======
>>>>>>> 7.24
Order allow,deny
</FilesMatch>
Run Code Online (Sandbox Code Playgroud)
这里怎么会有冲突?它甚至不是空白/结束差异的潜在案例:冲突的7.24部分根本没有任何内容.
为什么git抱怨这个?我可能误解了一些基本的东西......
这是我关于 SO 的第一个问题,所以请保持温和:)
我最近开始了一项新工作,我在 OSX 10.6 上的 Eclipse 3.4.0 上的 PyDev 中进行所有开发。因此,我一直在寻找一种方法,让 Home 和 End 像在 Windows 上一样运行(我的原生操作系统,以及我开发肌肉记忆的地方)。我基本上成功了,但我遇到了一个障碍:对话。我想出了如何将 Home 重新绑定到“Line Start”并将 End 重新绑定到“Line End”(加上它们的移位等效项),但它似乎只在编辑器上下文中工作。当弹出一个对话框时,比如重命名文件,Home 和 End 根本不起作用。我什至将键绑定设置为在“在对话框和 Windows 中”时处于活动状态,但这实际上对对话框没有任何影响。
难道我做错了什么?或者这是 Eclipse 中的错误,还是 PyDev?
我正在尝试找到一种方法从 YouTube 检索我自己的私人播放列表,以便在我自己的个人网站上显示。到目前为止,所有文档似乎都表明检索私有用户数据(如私有播放列表)需要您网站的用户通过身份验证过程才能提供自己的身份验证。
就我而言,我不希望我的用户进行身份验证,我希望我的网站每次访问 Youtube 数据 API 时都对我自己的帐户进行身份验证,以便检索我自己的私人播放列表。
那可能吗?我认为如果我可以为自己的帐户保存身份验证令牌,那么这可能是可行的,但显然令牌发生了变化?我应该通过什么方式为自己的帐户获取初始授权令牌?
我正在尝试构建一个Bash提示符,它将包含我的git分支信息(使用git的bash-completion中的__git_ps1)和一个彩色的笑脸来指示最近运行的命令是否成功.
笑脸是用这种技术创造的,我在SO上找到了这个:
SMILEY="${GREEN}:)${COLOR_NONE}"
FROWNY="${RED}:(${COLOR_NONE}"
STATUS_EMOTICON="if [ \$? = 0 ]; then echo \"${SMILEY}\"; else echo \"${FROWNY}\"; fi"
Run Code Online (Sandbox Code Playgroud)
这是我想要使用的提示行:
export PS1="[\t]${RED}[\u@$MACHINE:${BOLD_CYAN}\w${GREEN}\$(__git_ps1 ' %s')${RED}]${COLOR_NONE} \`${STATUS_EMOTICON}\`\n$ "
Run Code Online (Sandbox Code Playgroud)
不幸的是,看起来__git_ps1运行的程序覆盖了这个$?值,我最终得到的每个表情都是绿色的笑脸,即使在跑步之后也是如此false.
取出__git_ps1电话......
export PS1="[\t]${RED}[\u@$MACHINE:${BOLD_CYAN}\w${RED}]${COLOR_NONE} \`${STATUS_EMOTICON}\`\n$ "
Run Code Online (Sandbox Code Playgroud)
...使表情符号正常工作.
所以我显然需要做的是${STATUS_EMOTICON} 在运行之前进行评估__git_ps1,但是在 __git_ps1输出后包含评估值.那可能吗?
我知道您可以使用 django forms Media API 和方法在表单js_initializer()中包含 javascript ,并且我已经成功完成了。但是,当显示我编写的这个自定义块的实例时,我需要在页面中包含 javascript 和 CSS 文件。
有具体的机制吗?或者我只需要在页面模板中包含 js/css 文件?我真的很想避免将它们包含在每个具有可能具有此块的 StreamField 的页面上,因为绝大多数不会,这意味着浪费大量页面加载时间。
python ×5
git ×2
sqlalchemy ×2
api ×1
bash ×1
database ×1
declarative ×1
dictionary ×1
eclipse ×1
git-merge ×1
key ×1
macos ×1
many-to-many ×1
mysql ×1
php ×1
pip ×1
relationship ×1
substring ×1
twitter ×1
unicode ×1
wagtail ×1
youtube-api ×1