我想使用子进程包executed.py从另一个python脚本执行python脚本trigger.py.在executed.py必须在不同的环境,畅达比跑出trigger.py(我们说的executed_env和trigger_env).最好的方法是什么?我目前的代码trigger.py是:
command = "python executed.py --option1 -dir /path/to/dir"
args = shlex.split(command)
my_subprocess = subprocess.Popen(args)
Run Code Online (Sandbox Code Playgroud)
它executed.py在trigger_env环境中运行后返回错误.
我创建了一个文件"authentication.py",与我的django项目中的"settings.py"文件处于同一级别.该文件的内容是:
from django.contrib.auth.models import User
class SettingsBackend(object):
def authenticate(self, request, username=None, password=None):
user_name = 'user_name'
user_password = 'user_pass'
login_valid = (user_name == username)
pwd_valid = (password == user_password)
if login_valid and pwd_valid:
try:
user = User.objects.get(username=username)
except User.DoesNotExist:
user = User(username=username)
user.is_staff = True
user.is_superuser = True
user.save()
return user
return None
def get_user(self, user_id):
try:
return User.objects.get(pk=user_id)
except User.DoesNotExist:
return None
Run Code Online (Sandbox Code Playgroud)
然后我在"settings.py"文件中添加了以下行:
AUTHENTICATION_BACKENDS = ('myProject.authentication.SettingsBackend',)
Run Code Online (Sandbox Code Playgroud)
但是,登录不起作用.当用户的凭据存储在数据库中时,它在这两个修改之前工作.我不知道如何调试这个.任何的想法 ?
以下是我的设置文件的一些部分:
INSTALLED_APPS = [
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.humanize',
'default',
] …Run Code Online (Sandbox Code Playgroud) 我创建了一个网站,其布局与任何浏览器完美呈现,但Safari ... cols未对齐我从他们的div中获取图像.我不知道为什么会这样.你遇到过这样的问题吗?
以下是代码示例(使用Bootstrap 4):
<div class="row" style="margin: 0px; padding: 0px;">
<div class="col-xs-12 col-sm-12 col-md-6 col-lg-6 col-xl-6"
style="margin: 0px; padding: 0px;">
<div class="row align-items-center" style="margin: 0px; padding: 0px;">
<div
class="hidden-xs hidden-sm col-md-3 col-lg-3 col-xl-3 text-center"
style="margin: 0px; padding: 0px;"></div>
<div
class="col-xs-12 col-sm-12 col-md-9 col-lg-9 col-xl-9 text-center"
style="margin: 0px; padding: 0px;">
<titre2>{{sections[section.sections[0]]['name']}}</titre2>
</div>
<div
class="hidden-xs hidden-sm col-md-3 col-lg-3 col-xl-3 box empty2"
style="margin: 0px; padding: 0px;"></div>
<div class="col-xs-12 col-sm-12 col-md-9 col-lg-9 col-xl-9 boxsup"
style="margin: 0px; padding: 0px;">
<a
href="{{ path('section', {'section_name': sections[section.sections[0]]['name']}) …Run Code Online (Sandbox Code Playgroud) 我在一百万个摘要数据集(20亿字)上使用word2vec.为了找到大多数类似的文档,我使用了这个gensim.similarities.WmdSimilarity类.在尝试使用时检索最佳匹配时wmd_similarity_index[query],计算会花费大部分时间来构建字典.这是一段日志:
2017-08-25 09:45:39,441 : INFO : built Dictionary(127 unique tokens: ['empirical', 'model', 'estimating', 'vertical', 'concentration']...) from 2 documents (total 175 corpus positions)
2017-08-25 09:45:39,445 : INFO : adding document #0 to Dictionary(0 unique tokens: [])
Run Code Online (Sandbox Code Playgroud)
这部分是什么?它依赖于查询吗?有没有办法一次性完成这些计算?
编辑:我的代码中的培训和评分阶段:
培训并保存到磁盘:
w2v_size = 300
word2vec = gensim.models.Word2Vec(texts, size=w2v_size, window=9, min_count=5, workers=1, sg=1, hs=1, iter=20) # sg=1 means skip gram is used
word2vec.save(utils.paths.PATH_DATA_GENSIM_WORD2VEC)
corpus_w2v_wmd_index = gensim.similarities.WmdSimilarity(texts, word2vec.wv)
corpus_w2v_wmd_index.save(utils.paths.PATH_DATA_GENSIM_CORPUS_WORD2VEC_WMD_INDEX)
Run Code Online (Sandbox Code Playgroud)
载入和评分:
w2v = gensim.models.Word2Vec.load(utils.paths.PATH_DATA_GENSIM_WORD2VEC)
words = [t for t in proc_text …Run Code Online (Sandbox Code Playgroud) 我正在构建我的第一个 python 包(然后使用 pip 安装),并且我需要使用一些非 python 文件。在这些答案中,解释了我应该使用该pkg_resources功能。但我无法找出一个有效的例子。假设我有这个项目结构:
package_name/
----data/
--------image.png
----package_name/
--------__init__.py
--------file.py
----setup.py
----MANIFEST.in
----conf.yml
Run Code Online (Sandbox Code Playgroud)
现在我想访问conf.yml并image.png来自file.py. 我应该如何进行:
我需要使用Python 3在烧瓶应用程序中保存一次并加载多次大型数组。这些数组最初是使用json库存储在磁盘上的。为了加快速度,我在同一台计算机上使用Redis通过将数组序列化为JSON字符串来存储该数组。我想知道为什么我没有得到任何改善(实际上,我使用的服务器花费了更多时间),而Redis将数据保留在RAM中。我想JSON序列化不是最优化的,但是我不知道如何加快这一步:
import json
import redis
import os
import time
current_folder = os.path.dirname(os.path.abspath(__file__))
file_path = os.path.join(current_folder, "my_file")
my_array = [1]*10000000
with open(file_path, 'w') as outfile:
json.dump(my_array, outfile)
start_time = time.time()
with open(file_path, 'r') as infile:
my_array = json.load(infile)
print("JSON from disk : ", time.time() - start_time)
r = redis.Redis()
my_array_as_string = json.dumps(my_array)
r.set("my_array_as_string", my_array_as_string)
start_time = time.time()
my_array_as_string = r.get("my_array_as_string")
print("Fetch from Redis:", time.time() - start_time)
start_time = time.time()
my_array = json.loads(my_array_as_string)
print("Parse JSON :", time.time() - start_time)
Run Code Online (Sandbox Code Playgroud)
结果:
JSON …Run Code Online (Sandbox Code Playgroud) 我在具有大量RAM和CPU内核的linux服务器上运行了几个python脚本.我怎样才能为每个RAM指定最大RAM数和最大CPU核心数?我可以使用linux bash脚本或python代码来实现这一点.
我试图了解tf.reshape如何工作。让我们举个例子:
embeddings = tf.placeholder(tf.float32, shape=[N0,N1])
M_2D = tf.placeholder(tf.float32, shape=[N0,None])
M_3D = tf.reshape(M_2D, [-1,N0,1])
weighted_embeddings = tf.multiply(embeddings, M_3D)
Run Code Online (Sandbox Code Playgroud)
在这里,我有一个2D张量M_2D,其列表示维度N1的N0个嵌入的系数。我想创建一个3D张量,其中M_2D的每一列都放置在M_3D的第一维中,并且各列保持相同的顺序。我的最终目标是创建2D嵌入的3D张量,每个张量由M_2D的列加权。
如何确定整形实际上将每一列放置在M_3D的新维度中。是否可以代替放置行?在tensorflow文档中是否有明确的解释tf.reshape的内部工作过程,特别是在提供-1的情况下?
python ×6
conda ×1
cpu ×1
cpu-word ×1
css ×1
database ×1
django ×1
environment ×1
gensim ×1
html ×1
nlp ×1
package ×1
performance ×1
pip ×1
python-3.x ×1
ram ×1
redis ×1
reshape ×1
safari ×1
setup.py ×1
subprocess ×1
tensorflow ×1
word2vec ×1