Py学习  »  Chris  »  全部回复
回复总数  41
7 年前
回复了 Chris 创建的主题 » 如何使用带有github的heroku配置变量安装远程私有repo

Heroku不会提供现成的,而且 package.json doesn't natively support environment variables .

一种选择是将依赖项构建为npm包,并将其发布到私有包存储库中,例如。 Gemfury 谁的 Heroku addon has a free plan 支持单个私有模块。

简而言之,你可以 publish your module 哄骗 https://npm-proxy.fury.io/APPID/ ,然后 npm login npm publish . 然后, in the Heroku app 这取决于您的私有模块,添加 .npmrc 包含

always-auth=true
registry=https://npm-proxy.fury.io/APPID/
//npm-proxy.fury.io/APPID/:_authToken=${FURY_AUTH}

并设置一个heroku配置变量 FURY_AUTH 包含您的gemfury身份验证令牌。

这意味着您必须在gemfury上更新已发布的库,然后依赖应用程序才会看到您对其所做的更改。无论如何,这可能是一个好主意;依赖于特定的标记版本比依赖于可变分支更安全。

还有 this workaround 它可以让您有效地将环境变量注入 包装袋 ,但我还没试过。

7 年前
回复了 Chris 创建的主题 » python:删除字符串中的特殊字符

前后空格数不同时 / :

import re

re.sub("\s+/\s+", "_", "Peter North  /  John West")
# Peter North_John West
7 年前
回复了 Chris 创建的主题 » 如何在不使用pip的情况下在heroku中安装python包?

部署后,不能在heroku上手动安装python库(或其他任何东西)。那是因为 Heroku's filesystem is ephemeral :每当您的dyno重新启动时,您对它所做的任何更改都将丢失,这 happens frequently (每天至少一次)。

相反,请确保在 requirements.txt 文件(或者,如果您愿意使用 pipenv Pipfile Pipfile.lock 文件)。这些文件应该提交到您的存储库。当你部署到Heroku的时候 will install dependencies for you 把它们包含在你的应用程序中。

7 年前
回复了 Chris 创建的主题 » 无法从Github安装纱包

你是用npm安装的吗?

如果你有NPM,就做

npm i yarn
6 年前
回复了 Chris 创建的主题 » 数据帧python中的格式时差

为了 Req_time_taken1 使用 pandas.Series.str.split :

df['Req_time_taken1'] = df['Req_time_taken'].astype(str).str.rsplit(':', 1).str[0]

为了 Req_time_taken2 使用 pandas.Series.dt.total_seconds :

df['Req_time_taken2'] = df['Req_time_taken'].dt.total_seconds().apply(lambda x: '%s hours %s minutes' % (x//3600, x%3600/60))
print(df)

输出:

      request        Req_Created        Req_Closed  Req_time_taken  \
0  REQ0079455  15/05/2019  16:51  23/05/2019 20:53 8 days 04:02:00   
1  REQ0079455   15/05/2019 16:51  23/05/2019 20:53 8 days 04:02:00   

  Req_time_taken1          Req_time_taken2  
0    8 days 04:02  196.0 hours 2.0 minutes  
1    8 days 04:02  196.0 hours 2.0 minutes  
7 年前
回复了 Chris 创建的主题 » python找不到已安装的(用户站点)应用程序

让我们先看看第二个案例。尝试添加 -m 与一起运行时标记 python :

python -m compiledb

把它当作 compiledb 您可能需要添加 pip 用户二进制目录 PATH 。让我们看看在哪里 pip install --user 在您的计算机上放置库。在命令行上运行:

python -c 'import site; print(site.USER_BASE)'

在我的系统上打印

/home/chris/.local

和通过安装的二进制文件 pip安装--用户 住在

/home/chris/.local/bin

假设您得到类似的输出,您应该能够运行 编译的B 作为

/home/amigo421/.local/bin/compiledb

如果可以的话,你可以添加 /home/amigo421/.local/bin 给你的 路径 ,例如通过添加

export PATH="$PATH:/home/amigo421/.local/bin"

给你的 ~/.bash_profile 然后注销并重新登录。在这一点上,你应该能够简单地运行

compiledb
7 年前
回复了 Chris 创建的主题 » python:为什么复制b=list(a)的列表后id会改变?

您可能还会发现这一点很有用:

Python variables - behind the scenes

它展示了Python如何管理变量。

7 年前
回复了 Chris 创建的主题 » GitHub回购保护的分支配置不工作

我想这是故意的。“限制谁可以推到匹配的分支”功能限制谁可以 按到 一根树枝,但你说

但是,我仍然可以从任何分支创建一个请求,并合并到受保护的分支。

保护分支的关键是强制代码通过拉请求过程。限制推送访问不会限制拉请求。它只是意味着用户不能 git push 直接向分支机构编码。

您还可以在合并请求之前添加所需的状态检查,例如测试通过、批准请求的合作者的数量、加密签名的提交等。

8 年前
回复了 Chris 创建的主题 » Heroku上的Tornado服务器。错误R10(启动超时)

赫鲁库 tells you which port you should bind to via the PORT environment variable . 您应该使用它而不是对端口进行硬编码,例如

import os

port = int(os.getenv('PORT', 4200))
server.listen(port, address='0.0.0.0')

这将使用 端口 如果存在环境变量(如Heroku上),则返回到4200(如开发机器上)。

7 年前
回复了 Chris 创建的主题 » 允许特定的GitHub用户克隆专用存储库

我将推荐一种不同的方法。听起来像是 deploy key 可能会解决你的问题。这完全不需要机器用户A拥有github帐户。

  1. 为计算机用户A生成一个ssh密钥
  2. 转到GitHub的Web UI中存储库的设置页
  3. 在侧栏中,单击部署密钥,然后添加部署密钥
  4. 粘贴生成的公钥并为其提供标题,然后单击“添加密钥”

每个部署密钥只能用于单个存储库。默认情况下,deploy keys授予只读访问权限。

7 年前
回复了 Chris 创建的主题 » python“indexerror:索引8超出轴0的界限,大小为8”

你的 n ,用于分割列表 mask 是不适合索引的数字列表(因为它始终包含n,n+1,而最后一个索引 面具 是n-1)。

另外,第二个列表 面具 包含 Bool str ,所以你比较 mask[n] == 'true' 总是 返回 False .

考虑到以上几点, primes_list 可以是:

def primes_list(N):
    numbers, mask = prime_sieve(N)
    primes = []
    for i, n in enumerate(numbers): # <<< added enumerate 
        if mask[i]:                 # <<< removed unnecessary comparison
            primes.append(n)        # <<< append n directly
    return primes

回报:

[2, 3, 5, 7]

应该是这样的。