有关如何"本地"删除子模块的有用答案 - 如何删除子模块?
但是我有问题我在几台机器上克隆了我的仓库.两个我每个月只工作一到两次.因此,当我更新那些分支时虽然不再跟踪子模块,但文件仍然在工作分支上.git/modules.在不止一次的情况下,我偶然检查了一些.在其他情况下,由于存在这些不需要的文件/目录,我的构建失败.
我想我可以保留一个要删除的东西列表 - 但这似乎不对 - 另一个人会怎么做删除,我没有git之外的信息删除什么?
那么清理克隆的建议方法是什么?
更新
对我来说似乎是最新的git --version回报git version 2.18.0(2018-09-01).
我添加了一个可重现的例子.
建立
mkdir parent
cd parent
git init
git submodule add https://github.com/jakesgordon/javascript-tetris.git
git commit -am add
cd ..
git clone parent clone
cd clone
git submodule update --init
Run Code Online (Sandbox Code Playgroud)
现在两个目录都包含带有签出文件的子模块javascript-tetris/. .gitmodules包含子模块.
当我做
cd parent
git rm javascript-tetris
git commit -am delete
Run Code Online (Sandbox Code Playgroud)
在父目录中,目录已经javascript-tetris消失,并且.gitmodules删除了该条目.但仍有一个人口稠密的.git/modules/javascript-tetris目录.
在克隆方面:
git pull
Run Code Online (Sandbox Code Playgroud)
发出警告:warning: unable to rmdir 'javascript-tetris': …
我必须遍历json数组对象.
它具有以下结构.
var myJSONObject = {
"abc": {
"prod_1": [
{"prod_ver" : "prod 1 ver 1"},
{"prod_ver" : "prod 1 ver 2"},
],
"prod_2": [
{"prod_ver" : "prod 2 ver 1"},
{"prod_ver" : "prod 2 ver 2"},
],
"prod_3": [
{"prod_ver" : "prod 3 ver 1"},
{"prod_ver" : "prod 3 ver 2"},
]
}
};
Run Code Online (Sandbox Code Playgroud)
基本上我正在做的是prod_1是产品的名称,prod_1的版本列表填充在其中.
所以现在我想要的是产品的名称以及它具有的版本.
问题是该产品下可能有许多产品和许多版本.所以我需要一个适当的循环结构在javascript中可以通用来处理它.
最好是循环将产品名称存储在一个var中,而将其版本存储在另一个var中,因为我需要对产品名称进行一些检查.
如果json结构错误或者可以写出更好的json结构,请建议正确/更好的结构.
请帮帮忙
提前致谢.
我有一些用Perl模块编写的函数.我必须在Python中调用这些函数并获取输出.
我已经看到链接 http://en.wikibooks.org/wiki/Python_Programming/Extending_with_Perl.我无法找到他们在Python中导入的Perl模块.
当我尝试在Linux中安装pyperl时,它无法找到它.
我能够运行简单的Perl脚本并获取输出,但我无法调用用Perl编写的函数并获取输出.
在我运行此代码之前,我认为它们是相同的:
class B(object):
def show(self):
self.__a = "test"
print "B"
def this_b(self):
print "this_b"
print self.__a
print getattr(self, '__a') #exception
class C(B):
def show(self):
print "C"
# B.show(self)
super(C, self).show()
def call(self):
print "call"
self.show()
self.this_b()
# print self.__a
C().call()
Run Code Online (Sandbox Code Playgroud)
它AttributeError: 'C' object has no attribute '__a'随着getattr声明而提出,但为什么呢?
我有文本(字符串)格式的二进制的十六进制代码.如何使用像cat和echo这样的linux命令将其转换为二进制文件?
我知道命令跟随命令创建二进制test.bin.但是如果这个十六进制代码在另一个.txt文件中呢?如何"捕捉"文本文件的内容以"回显"并生成二进制文件?
# echo -e "\x00\x001" > test.bin
这是我正在遵循的教程中的确切代码.我的同学没有用相同的代码得到这个错误:
ImportError Traceback (most recent call last)
<ipython-input-1-c6e1bed850ab> in <module>()
----> 1 from pyspark import SparkContext
2 sc = SparkContext('local', 'Exam_3')
3
4 from pyspark.sql import SQLContext
5 sqlContext = SQLContext(sc)
ImportError: No module named pyspark
Run Code Online (Sandbox Code Playgroud)
这是代码:
from pyspark import SparkContext
sc = SparkContext('local', 'Exam_3')
from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)
data = sc.textFile("exam3")
parsedData = data.map(lambda line: [float(x) for x in line.split(',')])
retail = sqlContext.createDataFrame(parsedData,
['category_name','product_id', 'product_name', 'product_price'])
retail.registerTempTable("exam3")
print parsedData.take(3)
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用一个Dockerfile进行生产和开发.生产和开发之间的唯一区别是我设置的环境变量.因此,我想从文件中导入环境变量.在使用Docker之前,我会简单地执行以下操作
. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)
但是如果改变./main.py与Docker等效
. ./setvars
docker run .... ./main.py
Run Code Online (Sandbox Code Playgroud)
然后变量将在主机上,并且无法从Docker实例访问.当然,快速而肮脏的黑客就是制作文件
#!/bin/bash
. ./setvars
./main.py
Run Code Online (Sandbox Code Playgroud)
并在实例中运行它.然而,这将是非常烦人的,因为我有很多我想运行的脚本(使用相同的环境变量),然后必须为每个人创建一个额外的脚本.
是否有任何其他解决方案来获取我的环境变量在docker中而不使用不同的Dockerfile和我上面描述的方法?
有没有办法使用argparse创建别名?
例如,我想做这样的事情:
parser.add_argument('--foo' ...)
parser.add_argument_alias('--bar', '--foo')
Run Code Online (Sandbox Code Playgroud)
也就是说,使用--bar应该等同于使用--foo.
我开始学习Python中的curses.我在Mac OS X上使用Python 3.5.当我尝试在右下角写入时,程序崩溃并出现以下错误:
$ python ex_curses.py
[...]
File "ex_curses.py", line 19, in do_curses
screen.addch(mlines, mcols, 'c')
_curses.error: add_wch() returned ERR
Run Code Online (Sandbox Code Playgroud)
示例程序是:
import curses
def do_curses(screen):
curses.noecho()
curses.curs_set(0)
screen.keypad(1)
(line, col) = 12, 0
screen.addstr(line, col, "Hello world!")
line += 1
screen.addstr(line, col, "Hello world!", curses.A_REVERSE)
screen.addch(0, 0, "c")
(mlines, mcols) = screen.getmaxyx()
mlines -= 1
mcols -= 1
screen.addch(mlines, mcols, 'c')
while True:
event = screen.getch()
if event == ord("q"):
break
curses.endwin()
if __name__ == "__main__":
curses.wrapper(do_curses)
Run Code Online (Sandbox Code Playgroud)
我有一种感觉,我错过了一些明显的东西,但我不知道是什么.
考虑以下代码:
from io import TextIOWrapper
from typing import List
from zipfile import ZipFile
def read_zip_lines(zippath: str, filename: str) -> List[str]:
with ZipFile(zippath) as zf:
with zf.open(filename) as bfp:
with TextIOWrapper(bfp, 'utf-8') as fp:
return fp.readlines()
Run Code Online (Sandbox Code Playgroud)
在 Python 3.6.9 下在上述代码上运行 mypy v0.782 失败并出现以下错误:
zfopen.py:8: error: Argument 1 to "TextIOWrapper" has incompatible type "IO[bytes]"; expected "BinaryIO"
Run Code Online (Sandbox Code Playgroud)
但是,我觉得这段代码不应该被视为错误,因为ZipFile.open()返回了一个TextIOWrapper接受的二进制文件句柄。此外,IO[bytes]和BinaryIO(据我所知)实际上是一回事;它只是BinaryIO被声明为IO[bytes]. 我天真地希望IO[bytes]在任何地方都能被接受BinaryIO,除了这不是子类的工作方式,而且我不确定在打字时如何正确利用这个子类。
谁在这里出错了,如何修复错误?
ZipFile.open()asIO[bytes]而不是typeshed 是否错误BinaryIO …python ×6
argparse ×1
command-line ×1
docker ×1
dockerfile ×1
git ×1
javascript ×1
json ×1
linux ×1
mypy ×1
ncurses ×1
perl ×1
pyspark ×1
python-2.7 ×1
shell ×1
type-hinting ×1
unix ×1