小编nfa*_*rar的帖子

Setuptools"开发"要求

TL; DR:有没有办法在运行时挂起setuptool的'develop'来安装一组开发需求python setup.py develop

我正在使用setuptools构建我的第一个python包.我将要求指定为:

requirements = [
    'click',
    'ansible',
    'fabric',
    'gitpython',
    'pyyaml',
    'jinja2',
    'yapsy'
]

test_requirements = [
    'pytest',
    'pytest-pep8',
    'pytest-cov',
]

setup(
...
    install_requires=requirements,
    tests_require=test_requirements,
...
)
Run Code Online (Sandbox Code Playgroud)

在开发过程中,我一直在安装软件包(在虚拟环境中):

python setup.py develop
Run Code Online (Sandbox Code Playgroud)

并卸载:

python setup.py develop -u
Run Code Online (Sandbox Code Playgroud)

该软件包使用entry_points来安装一些命令行脚本,因此这为我设置了命令,并允许我在同时测试命令时编辑软件包.

我还有一些用于开发的依赖项... sphinx +扩展和其他一些东西(使用该包不需要的东西).我现在只是在虚拟环境中手动安装它们.我没有看到任何关于如何使用setuptools连接它们的文档(并且没有在googles上找到任何示例).

也许有办法挂钩'setup.py develop'来安装一组额外的要求?另一种方法我还没读过?

python requirements setuptools

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

使用Python从设备获取MAC地址

我正在寻找一种方法(使用python)从本地网络上的设备获取第二层地址.第三层地址是已知的.

目标是构建一个脚本,定期轮询IP地址数据库,确保mac地址没有改变,如果有,则向我自己发送电子邮件警报.

python mac-address ip-address

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

如何关闭syntime(vim)中的特定消息?

我试图关闭合成中的一些消息.

例如,SC20148在bash文件中(它抱怨没有shebang).

查看完文档后,似乎可能通过以下方式完成:

let g:synstatic_quiet_messages = {
  \ 'type': 'syntax',
  \ 'regex': 'SC20148' }
Run Code Online (Sandbox Code Playgroud)

然而,这似乎不起作用.如何关闭特定消息?

vim syntastic

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

使用命令和指定配置文件启动Tmux

我正在研究互动的小脚本.我正在尝试启动tmux既指定命令(以便在进程退出tmux会话时退出)并使用配置文件 - 但似乎不可能.

tmux new-session -d -s myapp 'python myapp.py' -f 'myapp-tmux.conf'
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

command tmux

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

Ansible - 默认/显式标签

我有一个包含并标记各种角色的剧本:

- name:  base
  hosts: "{{ host | default('localhost') }}"

roles: 

  - { role: apt,              tags: [ 'base', 'apt', 'ubuntu']}
  - { role: homebrew,         tags: [ 'base', 'homebrew', osx' ]}
  - { role: base16,           tags: [ 'base', 'base16', 'osx' ]}
  - { role: nodejs,           tags: [ 'base', 'nodejs' ]}
  - { role: tmux,             tags: [ 'base', 'tmux' ]}
  - { role: vim,              tags: [ 'base', 'vim' ]}
  - { role: virtualenv,       tags: [ 'base',  virtualenv', 'python' ]}
  - { role: …
Run Code Online (Sandbox Code Playgroud)

tags ansible ansible-playbook

9
推荐指数
2
解决办法
7879
查看次数

没有明确定义的子任务执行

有没有人有一个自动运行'subasks'的解决方案?

我是gulp的新手,目前正在构建我的gulp文件,如下所示:

gulp.task('build:ccss', function(cb) {
  ...
}

gulp.task('build:js', function(cb) {
  ...
}

gulp.task('build:img', function(cb) {
  ...
}

gulp.task('build:index', function(cb) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

然后我明确定义基本任务并让它执行子任务:

gulp.task('build', ['build:scss', 'build:js', 'build:img', 'build:index']);
Run Code Online (Sandbox Code Playgroud)

我将这种结构用于几个"小组"任务:清洁,建筑,掉毛.

我很好奇是否有人在运行基本任务时有自动执行子任务的解决方案,而没有像我一样创建明确的定义.

javascript node.js gulp

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

Python导入,路径,目录和模块

首先让我说我已经对过去一周的过程进行了广泛的研究,但还没有找到这些问题的实际答案 - 只是一些模糊的答案并没有真正解释正在发生的事情.如果这只是因为我错过了我想要的东西,我很抱歉 - 请指出我正确的方向.

我的目录结构是:

TestProject/
    runtest*
    testpackage/
        __init__.py
        testmod.py
        testmod2.py
        testsubs/
            testsubmod.py
Run Code Online (Sandbox Code Playgroud)

几个笔记:

  • 我在Ubuntu上使用python2.7
  • 我正在测试bpython
  • 我正在从特定目录运行bpython来测试导入行为的方式
  • 我正在尝试遵循最佳做法.
  • 这个软件包没有安装,它在一个随机的dev目录中
  • 该目录不在pythonpath中
  • 我在包目录中有一个init .py
  • 嵌套目录中没有init .py文件
  • 初始化 .py文件是空的
  • testpackage/testmod.py包含TestModClass
  • testpackage/testsubs/testsubmod.py包含TestSubModClass

我观察到的事情:

  • 当我从TestProject /运行bpython 进口testpackage作品
    • 这不会导入testpackage.testmod
    • 我根本无法访问testpackage.testmod
  • 当我从TestProject/import运行bpython时,testpackage.testmod失败了
  • 当我从testProject运行bpython/从testpackage导入testmod工作
  • 我可以向init .py 添加代码以显式导入testmod.py,但不能testubs/testmod.py
    • 我不认为这是正确的方法,如果用户不想导入该模块怎么办?
  • 从testmod.py我可以导入testmod2,但不能导入testpackage.testmod2
    • 这样做很好,我可以使用STL或扭曲的名称(例如testpackage.logging)命名我自己的模块,而不会导致错误(很糟糕的是必须命名我自己的模块废话,如customerlogging,而不仅仅是mypackage.日志记录)

问题是:

  1. python路径中存在的包和模块上的导入与您尝试从当前目录导入时的python处理方式不同吗?
  2. 为什么不导入testpackage让我访问testpackage.testmod?当我导入操作系统时,我可以访问os.path(etc).
  3. 使用包,我应该坚持在基目录中使用单个init .py,还是应该将它们嵌套在后续目录中?
  4. 如何导入指定包名称的模块?来自testmod.py的IE,我想导入testpackage.testmod2而不仅仅是testmod2.
  5. 从subsubs目录导入子模块的正确方法是什么?
    1. 我看到的唯一解决方案是将该目录从init .py 附加到pythonpath ,但我不知道这是否正确.

提前致谢.

python module package

6
推荐指数
2
解决办法
5396
查看次数

在从管道执行的bash脚本中使用read -p

我提前道歉 - 我并不完全理解我所要求的理念背后的理念,以便理解为什么它不起作用(我不知道我需要学习什么).我首先在堆栈交换中搜索了答案 - 我发现了一些似乎可能相关的信息,但没有充分解释这些概念,我理解如何构建一个可行的解决方案.我一直在谷歌搜索,但没有找到任何信息,以我理解的方式描述究竟发生了什么.任何可能帮助我了解正在发生的事情的背景概念的方向将非常感激.

是否可以在从管道执行的bash脚本中获取用户输入?

例如:

wget -q -O - http://myscript.sh | bash
Run Code Online (Sandbox Code Playgroud)

并在脚本中:

read -p "Do some action (y/n): " __response
if [[ "$__response" =~ ^[Yy]$ ]]; then
   echo "Performing some action ..."
fi
Run Code Online (Sandbox Code Playgroud)

据我所知,这不起作用,因为读取stdin和bash脚本的读取尝试当前正在"通过该管道执行"(我确信有一种更技术更准确的方式来描述正在发生的事情,但是我不知道怎么样).

我找到了推荐使用的解决方案:

read -t 1 __response </dev/tty
Run Code Online (Sandbox Code Playgroud)

但是,这也不起作用.

任何关于我需要理解的概念以使其发挥作用的任何亮点,或解释为什么它不起作用或解决方案将不胜感激.

bash stdin wget pipe

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

textwidth = 78(而不是80)的原因/来源是什么?

在vim中,通常的做法是将textwidth设置为78而不是(正如我所期望的)80个字符.我到处都看到了这一点(帮助页面,模型,vimrcs等).

只是好奇,有谁知道这是为什么?

编辑:我理解设置80个字符的textwidth的原点/推理.只是好奇为什么通常的做法是将宽度设置为2个字符小于80.

vim

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

从脚本调用 zmodload

我试图了解 zsh 模块是如何加载的。根据文档:

zsh 的一些可选部分位于模块中,与 shell 的核心分开。这些模块中的每一个都可以在构建时链接到 shell,或者如果安装支持此功能,则可以在 shell 运行时动态链接。模块在运行时使用 zmodload 命令链接。

如果我启动一个新的 shell 并运行命令,zmodload它将显示当前加载的模块(zsh/datetime加载)。

我可以使用在运行时加载它zmodload zsh/datetime。如果我再次运行zmodload,我可以看到它现在已列出。

但是,当我像这样执行脚本时,找不到 zmodload 命令:

%./testload.zsh

#!/usr/bin/env zsh
zmodload zsh/datetime
echo "EPOCHSECONDS: $EPOCHSECONDS"

./testload.zsh: line 3: zmodload: command not found
Run Code Online (Sandbox Code Playgroud)

但是,如果我在调用新的 zsh shell 时执行脚本,它将成功运行:

% zsh testload.zsh

#!/usr/bin/env zsh
zmodload zsh/datetime
echo "EPOCHSECONDS: $EPOCHSECONDS"

EPOCHSECONDS: 1501004101
Run Code Online (Sandbox Code Playgroud)

知道为什么会发生这种行为吗?

zsh

5
推荐指数
0
解决办法
2894
查看次数

如何使用vimscript读取/写入文件列表

我有一些存储在列表中的配置数据 - 我想从外部文件中读取和写入.有关最佳方法的任何建议吗?

vim

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