我有一个 Dockerfile,需要使用命令从 URL 下载特定版本的软件ENV。例如:
在Dockerfile:
FROM ubuntu
ENV sw_ver=1.2.3
ADD https://some_address/_name_$sw_ver /some_dir
Run Code Online (Sandbox Code Playgroud)
构建命令类似于:
docker build -t my_image:1.2.3 .
Run Code Online (Sandbox Code Playgroud)
ENV现在,如果我可以通过简单地改变命令中的标签来为不同版本的软件构建不同的图像,而不是设置变量,那就太好了docker build。那么是否可以读取里面的标签号Dockerfile并将其用作变量呢?
我见过的SE这个问题,这个其他的超级用户问题,这和上AskUbuntu问题,但他们似乎边踩我的情况。
我在 Windows 上托管了一个共享文件夹。我在--bare那里创建了一个 git repo(带选项)来启动一个项目。
在带有 Windows 的本地文件夹中,我设法使用以下命令克隆了 repo:
git clone \\<ip address>\shared_folder_name\name_of_folder_with_git_repo
而且我可以正常推动。
然后在 linux 上,我成功地克隆了它:
git clone ~/.gvfs/smb-share:server=<ip address>,share=shared_folder_name/name_of_folder_with_git_repo
Run Code Online (Sandbox Code Playgroud)
看起来不错,但我无法从 linux 推送。显示的错误消息是:
remote: error: object directory /home/my_username/.gvfs/smb-share does not exist; check .git/objects/info/alternates.
remote: error: object directory server=<ip address>,share=shared_folder_name/name_of_folder_with_git_repo does not exist; check .git/objects/info/alternates.
remote: error: object directory /home/my_username/.gvfs/smb-share does not exist; check .git/objects/info/alternates.
remote: error: object directory server=<ip address>,share=shared_folder_name/name_of_folder_with_git_repo does not exist; check .git/objects/info/alternates.
remote: error: object directory refs/heads/master …Run Code Online (Sandbox Code Playgroud) 刚开始使用Pyinstaller(以及一些与Tk窗口配合使用),并且无法成功运行我的tkinter Windows应用程序(在python 3.5下)。我可能正在做一些愚蠢的事情,但是我已经尝试了所有我知道的事情,并且我真的需要使它运行起来,因此,我们非常感谢您的帮助。请注意,我的所有代码在普通python 3.5.1和3.5.3下都可以正常运行。已安装最新版本的PyInstaller(3.2.1),并且看来运行正常。
我切换到以下简单的窗口“ Hello World!”。应用程序,看看我能否使它工作,
from tkinter import *
root = Tk()
root.title("Test Window")
#Setup window widgets and place on window
l1 = Label(root,text='Hello World!',font=("Verdana",18))
l2 = Label(root,text='Hello World!',font=("Times New Roman",9))
b1 = Button(root, text='Button 1', font=("Verdana",12), state=DISABLED)
b1.pack()
b1.place(x=220, y=180)
l1.pack()
l1.place(x=170, y=10)
l2.place(x=200, y=60)
root.mainloop()
Run Code Online (Sandbox Code Playgroud)
但它似乎与我的原始应用程序存在相同的问题。
也许仅仅是因为我是PyInstaller的新手,但是我没有找到真正容易找到特定答案的文档。但是看起来更深一点,我决定在命令行中添加-d选项以查看调试输出,以尝试执行我的应用程序,因此我正在使用的完整命令行为:> pyinstaller -F -w -dc :\ PythonApps \ Hello.py。这给了我很多信息,以该错误消息结尾:
无法执行脚本pyi_rth_tkinter。
这是我在原始程序中看到的相同错误。我能够在我的系统上找到“ pyi_rth_tkinter.py”(实际上是该文件的2个版本),不确定PyInstaller执行时为什么会遇到问题。但是由于该文件吐出了有关Tcl和Tk数据目录的路径问题的错误消息,因此即使它找到并运行了该文件,也仍然猜测它会失败。
好的,在运行PyInstaller时更仔细地观察输出,我发现有几行看起来可能会导致我的问题:
3541 INFO: Loading module hook 'hook-_tkinter.py'
ImportError: cannot import name 'Tcl'
3659 ERROR: Tcl/Tk improperly …Run Code Online (Sandbox Code Playgroud) 我正在float32用 numpy 的tofile().
float_num = float32(3.4353)
float_num.tofile('float_test.bin')
Run Code Online (Sandbox Code Playgroud)
它可以用 numpy's 读取fromfile(),但这不符合我的需要,我必须在bitstring模块的帮助下将其作为原始二进制文件读取。
所以我执行以下操作:
my_file = open('float_test.bin', 'rb')
raw_data = ConstBitStream(my_file)
float_num_ = raw_data.readlist('float:32')
print float_num
print float_num_
Run Code Online (Sandbox Code Playgroud)
输出:
3.4353
-5.56134659129e+32
Run Code Online (Sandbox Code Playgroud)
可能是什么原因?第二个输出也应该是3.4353或关闭。
通常,人们会使用 XPath 查询来获取某个值或节点。就我而言,我正在使用谷歌电子表格进行一些网络抓取,使用该importXML函数自动更新一些值。下面给出两个例子:
=importxml("http://www.creditagricoledtvm.com.br/";"(//td[@class='xl7825385'])[9]")
=importxml("http://www.bloomberg.com/quote/ELIPCAM:BZ";"(//span)[32]")
Run Code Online (Sandbox Code Playgroud)
问题是我正在抓取的页面会时不时地发生变化,而且我对 XML/XPath 知之甚少,因此需要大量的试验和错误才能到达节点。我想知道是否有任何工具可以用来指向可以提供适当查询的元素(在页面中或其代码中)。
例如,在第二种情况下,我注意到我想要的信息位于跨度节点中(因此(//span)),因此我将所有信息打印在电子表格中,并使用行数来查找索引[32]。这需要很长时间才能加载,所以非常不方便。另外,我什至不记得我是如何计算出这个//td[@class='xl7825385']查询的。因此,为什么我想知道是否有更实用的方法来指向页面元素。
我正在开发一个用std=c++17and编译的 C++ 项目-Wall标志编译的 C++ 项目。我通常需要清除警告。
我尝试过包含xpm使用在线工具从 png 文件生成的图像,并收到以下警告:
warning: ISO C++ forbids converting a string constant to 'char*' [-Wwrite-strings]
最糟糕的是,此消息一遍又一遍地重复,以至于我的控制台不再保留错误消息。
有什么方法可以在保留两个标志的同时抑制此警告吗?我可以对 xpm 文件进行任何修改吗?
我需要一个脚本来确保文件中包含以下内容.gitconfig:
[url "git@<IP addr>:"]
insteadOf = https://<IP addr>/
insteadOf = https://<domain name>/
insteadOf = git@<domain name>:
Run Code Online (Sandbox Code Playgroud)
这是为了确保用户始终使用 SSH 进行克隆,并使用 IP 地址而不是 HTTP 地址(以 IP 或域形式),并且使用域名而不是 ssh。
但是,使用以下代码:
git config --global url.git@<IP addr>:.insteadOf https://<IP addr>/ --replace-all
git config --global url.git@<IP addr>:.insteadOf https://<domain name>/ --add
git config --global url.git@<IP addr>:.insteadOf git@<domain name>: --add
Run Code Online (Sandbox Code Playgroud)
这工作正常,但是一旦脚本再次运行,它会重新打印 .gitconfig 文件中的行,随着时间的推移,这将使文件太大并且 git 速度太慢。我已经尝试了所有标志组合--replace-all --add等等。他们要么堆积文件,要么发出警告,由于项目要求,我也无法容忍。
是否有任何语法可以一次添加三行并且如果它们已经存在则不执行任何操作?
我想在不使用 for 循环的情况下为 Matlab 中的对象列表分配一个值(为了提高效率)
基本上这有效:
for i=1:Nr_of_Objects
Objectlist(i,1).weight=0.2
end
Run Code Online (Sandbox Code Playgroud)
但我想要这样的东西:
Objectlist(:,1).weight=0.2
Run Code Online (Sandbox Code Playgroud)
哪个不起作用。我收到此错误:
预期花括号或点索引表达式有一个输出,但有 5 个结果。
将数组写入右侧也不起作用。我对 Matlab 中的面向对象编程不是很熟悉,所以如果有人能帮助我,我会很高兴。
git ×2
bitstring ×1
c++ ×1
c++17 ×1
docker ×1
dockerfile ×1
git-config ×1
matlab ×1
numpy ×1
pyinstaller ×1
python ×1
python-3.5 ×1
tkinter ×1
web-scraping ×1
xpath ×1