小编bor*_*cle的帖子

Phoenix错误:模块未加载/不可用

我正在关注编程凤凰书,正在编写实现登录/注销经过身份验证的用户的部分,并且收到错误我不知道该怎么做:

mix phoenix.server
Compiled lib/rumbl.ex
Compiled lib/rumbl/repo.ex
Compiled web/channels/user_socket.ex
Compiled web/web.ex
Compiled web/models/user.ex

== Compilation error on file web/router.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Auth.init/1 (module Rumbl.Auth is not available)
    Rumbl.Auth.init([repo: Rumbl.Repo])
    (plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
    (plug) lib/plug/builder.ex:186: anonymous fn/4 in Plug.Builder.compile/3
    (elixir) lib/enum.ex:1387: Enum."-reduce/3-lists^foldl/2-0-"/3
    (plug) lib/plug/builder.ex:186: Plug.Builder.compile/3
    web/router.ex:4: (module)
    (stdlib) erl_eval.erl:669: :erl_eval.do_apply/6
    (elixir) lib/kernel/parallel_compiler.ex:100: anonymous fn/4 in Kernel.ParallelCompiler.spawn_compilers/8


== Compilation error on file lib/rumbl/endpoint.ex ==
** (UndefinedFunctionError) undefined function: Rumbl.Router.init/1 (module Rumbl.Router is not available)
    Rumbl.Router.init([])
    (plug) lib/plug/builder.ex:198: Plug.Builder.init_module_plug/3
    (plug) …
Run Code Online (Sandbox Code Playgroud)

elixir phoenix-framework

15
推荐指数
2
解决办法
1万
查看次数

Python字典或JSON

将大型嵌套Python字典转换为JSON以便在小型库中使用(即不通过Web)有什么好处?

我正在解析配置文件并存储不同的数据位以便以后检索和输出.目前,所有信息都存储在嵌套的dict中,其中也有列表.这并不是说这个方法存在问题,我只是想知道使用标准数据格式是否有益,而嵌套的dict看起来很像JSON.

python json

11
推荐指数
1
解决办法
2万
查看次数

Python:如何使用长正则表达式进行行继续?

我有一个很长的正则表达式,我想继续到下一行,但我尝试的一切给了我一个EOL或打破正则表达式.我已经在括号内继续了一行,并阅读了这一点,除此之外,我如何在Python中进行换行(换行)?

工作,但仍然太长:

REGEX = re.compile(
            r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)')
Run Code Online (Sandbox Code Playgroud)

错误:

REGEX = re.compile(
            r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\)[A-Z0-9]+
            )\s+([a-zA-Z\d-]+)')

SyntaxError: EOL while scanning string literal


REGEX = re.compile(
            r'\d\s+\d+\s+([A-Z0-9-]+)\s+([0-9]+.\d\(\d\
                )[A-Z0-9]+)\s+([a-zA-Z\d-]+)')

sre_constants.error: unbalanced parenthesis


REGEX = re.compile(
            r'\d\s+\d+\s+([A-Z0-9-]+)\s+( \
            [0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)')

regex no longer works


REGEX = (re.compile(
            r'\d\s+\d+\s+([A-Z0-9-]+)\s+(
            [0-9]+.\d\(\d\)[A-Z0-9]+)\s+([a-zA-Z\d-]+)'))

SyntaxError: EOL while scanning string literal
Run Code Online (Sandbox Code Playgroud)

我已经能够缩短我的正则表达式,所以这不再是一个问题,但我现在有兴趣知道如何使用长正则表达式进行行继续?

python regex

7
推荐指数
2
解决办法
2395
查看次数

Python测试:将假文件与模拟&io.StringIO一起使用

我正在尝试测试可在文件上运行的某些代码,但似乎无法理解如何使用替换实际文件,mockio.StringIO 我的代码几乎是以下内容:

class CheckConfig(object):
    def __init__(self, config):
        self.config = self._check_input_data(config)

    def _check_input_data(self, data):
        if isinstance(data, list):
            return self._parse(data)
        elif os.path.isfile(data):
            with open(data) as f:
                return self._parse(f.readlines())

    def _parse(self, data):
        return data
Run Code Online (Sandbox Code Playgroud)

我有一个可以接受列表或文件的类,如果它是一个文件,则将其打开并将其提取到列表中,然后对结果列表执行所需的操作。

我的工作测试如下:

def test_CheckConfig_with_file():
    config = 'config.txt'
    expected = parsed_file_data
    actual = CheckConfig(config).config
    assert expected == actual
Run Code Online (Sandbox Code Playgroud)

我想替换对文件系统的调用。我试过用替换文件,io.StringIO但从中得到一个TypeErroros.path.isfile()因为它期望是字符串,字节或整数。我也尝试isfile像这样模拟方法:

@mock.patch('mymodule.os.path')
def test_CheckConfig_with_file(mock_path):
    mock_path.isfile.return_value = True
    config = io.StringIO('data')
    expected = parsed_file_data
    actual = CheckConfig(config).config
    assert expected == actual
Run Code Online (Sandbox Code Playgroud)

但是我仍然得到与导致异常 …

python unit-testing mocking python-mock

4
推荐指数
1
解决办法
4444
查看次数

Git - 推送失败/此操作必须在工作树中运行

我正在关注Git Pro的书(http://git-scm.com/book/en/v2/Git-on-the-Server-Setting-Up-the-Server)来设置我的第一个git远程服务器Ubuntu Linux系统.我跟着这个:

$ git remote add origin git@gitserver:/opt/git/inventory.git
$ git push origin Windows
Run Code Online (Sandbox Code Playgroud)

我收到此消息:

Counting objects: 33, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (28,28) done.
Writing objects: 100% (33/33), 7.30 KiB | 0 bytes/s, done.
Total 33 (delta 13), reused 0 (delta 0)
To git@gitserver:/opt/git/inventory.git
 * [new branch]    Windows -> Windows
Run Code Online (Sandbox Code Playgroud)

但是当我git status在远程服务器上键入时(在/opt/git/inventory.git/中),我收到错误消息fatal: This operation must be run in a work tree

远程存储库似乎不包含本地存储库中的任何文件,当我将远程存储库克隆到不同的本地文件夹时,没有文件,只有.git文件夹.

我在这里看了其他相关问题:

致命:此操作必须在工作树中运行

为什么我收到消息,"致命:这个操作必须在工作树中运行?"

在裸存储库中获取"致命:此操作必须在工作树中运行吗?"

但我不清楚为什么会这样,以及我可以做些什么来弥补它.

git

2
推荐指数
1
解决办法
1万
查看次数

Django/xhtml2pdf - 对象没有属性'encode'

我很难在Django中制作pdf文件.根据我之前的问题,遇到了同样的错误.
当我运行以下代码时'list' object has no attribute 'encode',pdf保存在媒体文件夹中,但它是纯文本文件.我认为被引用的对象是查询集sections.

@login_required
def generate_pdf(request, slug):
    # Prepare context
    document = get_object_or_404(Document, slug=slug)
    sections = \
        get_list_or_404(Section.objects.filter
                        (associated_document__startswith=document.slug))
    data = {'document': document, 'sections': sections}

    # Render html content through html template with context
    template = get_template('lld/lld_pdf.html')
    html = template.render(Context(data))
    file = open('/home/project/media/test.pdf', "w+b")
    print type(document)
    print type(sections)
    print type(data)
    print type(template)
    print type(html)
    print type(file)
    pisaStatus = pisa.CreatePDF(html.encode('utf-8'), dest=file)
    # Return PDF document through a Django HTTP …
Run Code Online (Sandbox Code Playgroud)

python pdf django xhtml2pdf

2
推荐指数
1
解决办法
2089
查看次数

声明性Jenkinsfile中的GOPATH

我正在为我们的Go mono存储库建立一个Jenkins多分支管道。我该如何设置GOPATHgo工具以便找到Jenkins在哪里获取回购协议?

我尝试使用environment语法设置它,如下所示:

pipeline {
    agent {
        docker {
            image 'golang:1.9.2'
        }
    }

    triggers {
        gitlab(triggerOnPush: true, triggerOnMergeRequest: true, branchFilterType: 'All')
    }

    post {
        failure {
            updateGitlabCommitStatus name: 'jenkins-build', state: 'failed'
        }
        success {
            updateGitlabCommitStatus name: 'jenkins-build', state: 'success'
        }
    }

    environment {
        GOPATH = "${pwd}"
    }

    stages {
        stage('Build') {
            steps {
                updateGitlabCommitStatus name: 'jenkins-build', state: 'pending'
                echo 'Linting...'
                sh 'go version'
                sh 'go get -u -v github.com/golang/lint/golint'
                sh 'golint -set_exit_status ./...'
                echo 'Building...'
                sh …
Run Code Online (Sandbox Code Playgroud)

go jenkins jenkins-pipeline gopath

2
推荐指数
1
解决办法
2190
查看次数

csv Jinja2模板呈现unicode错误

我正在尝试使用csv文件中的变量呈现jinja2模板:

# -*- coding: utf-8 -*-

import csv
from jinja2 import Environment, FileSystemLoader

env = Environment(loader=FileSystemLoader('templates'))
template = env.get_template('baseconfig.j2')

with open('C:\Users\\robertph\CompanyA.csv', mode='r') as csvfile:
    dictReader = csv.DictReader(csvfile)
    for row in dictReader:
        hostname = row['hostname'] + '.txt'
        with open('C:\Users\\robertph\host_vars\\' + hostname,'w') as fh:
            fh.write(template.render(row))
Run Code Online (Sandbox Code Playgroud)

但是我收到以下错误:

File ".\csv2dict_test2.py", line 18, in <module>
    fh.write(template.render(row))
UnicodeEncodeError: 'ascii' codec can't encode character u'\u2013' in position 2042: ordinal not in range(128)
Run Code Online (Sandbox Code Playgroud)

我想我理解的错误是我在¦ 某个地方有一个unicode字符,但我不知道在哪里,虽然我已经搜索了模板和dictReader.我已阅读文档(http://jinja.pocoo.org/docs/dev/api/#unicode),但不了解如何缓解此错误.

python csv unicode jinja2

1
推荐指数
1
解决办法
1515
查看次数

我真的需要和Django一起使用virtualenv吗?

这可能是新手的臭味,但......

我正在研究我的第一个Django项目,我正在阅读很多使用virtualenv被认为是最佳实践.我理解virtualenv沙箱所有我的python依赖项,但我只是不知道如果我在沙盒VM中工作是否有必要吗?我正在开发Vagrant,并且不会将这些VM用于其他任何事情,我将部署到只有这个Django项目的VM服务器上.是否有可能在未来进一步的Django应用程序在这个项目中需要不同的依赖关系,所以需要在不同virtualenv的?(不确定它是否像那个tbh一样工作?)

我只是表现出我的经验不足和短视吗?

python django virtualenv vagrant

1
推荐指数
1
解决办法
439
查看次数

Django 中的中断迁移

我在我的模型中创建并随后更改了一个 DecimalField。现在,当我尝试运行时,出现python manage.py migrate以下错误:

decimal.InvalidOperation: quantize result has too many digits for current context
Run Code Online (Sandbox Code Playgroud)

在阅读了 SO 上的各种相关问题后,我尝试增加 max_digits,这无济于事。 我已经手动删除了我的 postgreSQL 数据库中的模型,希望能够在我迁移模型时重新创建它,但我仍然遇到同样的错误,并且无法迁移模型并在数据库中重新创建模型。

这是有问题的模型:

class Version(models.Model):
    version_number = models.DecimalField(default=1.0, max_digits=3,
                                     decimal_places=2)
Run Code Online (Sandbox Code Playgroud)

我能做些什么来解决这个问题?

编辑 当我更改 DecimalField 时,我更改了max_digits

python django postgresql

1
推荐指数
1
解决办法
1097
查看次数

TypeScript 和 React 中的联合类型 props

我有一个带有 prop 的组件,我想将其限制为一系列字符串,因此我使用联合类型,如下所示:

type HeadingProps = {
    level?: 'h1' | 'h2' | 'h3' | 'h4'| 'h5' | 'h6'
}

const Heading: React.FC<HeadingProps> = ({children, level = 'h2'}) => {
    return <Box as={level} />
}
Run Code Online (Sandbox Code Playgroud)

当我这样使用时效果很好..

<Heading level="h1">Hello, world!</Heading>
Run Code Online (Sandbox Code Playgroud)

但如果我尝试将它与数组一起使用,则会收到错误:

{['h1', 'h2', 'h3', 'h4', 'h5', 'h6'].map((level: string) => (
    <Heading level={level}>{level}</Heading>
)}
Run Code Online (Sandbox Code Playgroud)

类型“string”不可分配给类型“h1”| “h2”| “h3”| “h4”| “h5”| “h6”| 未定义'.ts(2322)

如何获得 prop 的类型,以便只有这些字符串有效,但在像上面这样的数组中使用组件时能够传递有效的字符串值?

编辑 这就是当前类型的样子:

export const HeadingLevels = {
  h1: `h1`,
  h2: `h2`,
  h3: `h3`,
  h4: `h4`,
  h5: `h5`,
  h6: `h6`, …
Run Code Online (Sandbox Code Playgroud)

typescript reactjs

1
推荐指数
1
解决办法
1205
查看次数