我已导出当前活动的环境
conda env export > environment.yml
Run Code Online (Sandbox Code Playgroud)
这非常方便,因为它跟踪conda和pip安装的包.但是,我有一些软件包(例如,整体和底图)由来自Christoph Gohlke的Windows编译软件包的.whl文件中的pip本地安装.当我尝试通过重建我的环境时
conda env create -f environment.yml
Run Code Online (Sandbox Code Playgroud)
pip返回错误,因为它无法在索引中找到这些包(显然).有没有办法在conda导出步骤中告诉pip在哪里查找这些本地包?可以假定.whl文件与environment.yml文件位于同一目录中.
在我的应用程序中,我将“用户”和“帖子”作为模型。每个帖子都有一个用户名外键。当我在帖子模型的顶部创建ModelView时,可以在管理界面中以特定用户的身份创建帖子,如以下屏幕截图所示
添加帖子并单击“保存并添加另一个”后,“用户”将恢复为“ user1”。如何使表单记住先前的值“ user2”?
我的研究使我相信可以通过修改on_model_change和on_form_prefill并在flask会话中保存先前的值来完成,但这似乎过度设计了这么简单的任务。必须有一个更简单的方法。
我的代码可以在下面看到
from flask import Flask
from flask_sqlalchemy import SQLAlchemy
import flask_admin
from flask_admin.contrib import sqla
app = Flask(__name__)
db = SQLAlchemy()
admin = flask_admin.Admin(name='Test')
class Users(db.Model):
"""
Contains users of the database
"""
user_id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(64), index=True, unique=True, nullable=False)
def __str__(self):
return self.username
class Posts(db.Model):
"""
Contains users of the database
"""
post_id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(11), db.ForeignKey(Users.username), nullable=False)
post = db.Column(db.String(256))
user = db.relation(Users, backref='user')
def build_sample_db():
db.drop_all() …Run Code Online (Sandbox Code Playgroud) 假设我有一个由像这样的条目组成的表
ID Arrival Date Arrival City Departure Date Departure City
1 Jun 27 2015 Berlin Jun 20 2015 Paris
1 Jul 1 2015 Rome Jun 29 2015 Berlin
1 Jul 30 2015 Vienna Jul 15 2015 Rome
2 Jun 28 2015 Prague Jun 23 2015 Vienna
2 Jul 1 2015 Rome Jun 29 2015 Prague
2 Jul 30 2015 Vienna Jul 15 2015 Moscow
...
Run Code Online (Sandbox Code Playgroud)
并且对于每个ID,我想将这些数据连接到自身,以便随后的观察Departure Date和Arrival Date成对分组 - 即离开与每个ID的先前到达配对.
在上面的例子中(为了方便起见,观察结果被排序),第2行将被附加到第1行,第3行到第2行,第5行到第4行以及第6行到第5行(因此产生4行字段ID Arrival Date Arrival City …
我对编译器实际优化的方式没有很多经验,不同级别之间有什么区别(例如-O2与-cc3对于gcc).因此,我不确定以下两个语句对于任意编译器是否相同:
for(i=0;i<10;++i){
variable1*variable2*gridpoint[i];
}
Run Code Online (Sandbox Code Playgroud)
和
variable3=variable1*variable2;
for(i=0;i<10;++i){
variable3*gridpoint[i];
}
Run Code Online (Sandbox Code Playgroud)
从处理时间的角度来看,只计算variable1和variable2的乘积,因为它们在循环中不会改变,这是有意义的.然而,这需要额外的内存,而且我不确定优化器对此开销的影响有多大.如果您从纸张/书籍中获得等式并希望将其转换为计算机可读的内容,则第一个表达式是最容易阅读的.但第二个可能是最快的 - 特别是对于在循环内有很多未变量的更复杂的方程式(我有一些非常令人讨厌的非线性微分方程,我希望在代码中是人类可读的).如果我将变量声明为常量,是否有任何变化?我希望我的问题对任意编译器都有意义,因为我同时使用gcc,Intel和Portland编译器.
我知道标准不强制std::vector分配连续的内存块,但所有实现都遵循这一点.
假设我希望创建一个多维静态数组的向量.为简单起见考虑2个维度,并考虑长度为N的向量.也就是说,我希望创建一个具有N个元素的向量int[5].
我可以确定所有N*5整数现在在内存中是连续的吗?所以我原则上可以通过知道第一个元素的地址来访问所有整数?这个实现依赖吗?
作为参考,我当前在连续内存块中创建2D数组的方法是首先创建一个长度为N的浮动*(动态)数组,在一个数组中分配所有N*5个浮点数,然后将每个第5个元素的地址复制到第一个数组float*.
我知道全局变量很糟糕,应该尽可能避免.但是,例如,在使用MPI编写并行程序时,某些变量只会初始化一次,并且永远不会更改(此任务的编号,任务总数等).将这些变量视为全局变量仍被视为不良做法吗?由于您几乎总是需要访问这些变量,因此在main中为它们创建一个类似乎很愚蠢,并将指针传递给程序中99%的所有函数.到目前为止,我的方法是将它们隐藏在命名空间mpi_glob中(对于C++的情况,我想我不会费心将它们放在C中的结构中来模拟命名空间).我想这个问题也适用于其他只设置一次的变量,例如单位系统等.
我正在开发一个C++ MPI应用程序.我有一些现有的代码是一个C MPI应用程序,它部分地做我想要的,所以我应该能够复制一些代码(或者用更简洁的C++方式重写它)到我的新程序中.由于不推荐使用MPI的C++接口(并且很难找到文档),我正在认真考虑在我的C++应用程序中使用C接口到MPI.将C MPI接口与C++ MPI应用程序混合起来是一个上帝的想法,还是我真的需要学习使用Boost?
c ×3
c++ ×3
mpi ×2
python ×2
conda ×1
contiguous ×1
flask ×1
flask-admin ×1
join ×1
optimization ×1
pip ×1
self-join ×1
sql ×1
sql-server ×1
standards ×1
t-sql ×1
vector ×1
windows ×1