对于扩展,收集,分解和简化方程式,我正在尝试在Octave 4.2.1(在Windows 10上运行)中安装软件包:{
"name": "seregazhuk/pinterest-bot",
"description": "PHP library for Pintrest",
"keywords": [
"php",
"lib",
"pinterest"
],
"type": "package",
"minimum-stability": "dev",
"license": "MIT",
"autoload": {
"files": [
"src/Helpers/functions.php"
],
"psr-4": {
"seregazhuk\\PinterestBot\\": "src"
}
},
"autoload-dev": {
"psr-4": {
"seregazhuk\\PinterestBot\\": "src",
"seregazhuk\\tests\\": "tests"
}
},
"require": {
"php": ">=5.6",
"ext-curl": "*",
"ext-fileinfo": "*"
},
"require-dev": {
"codeclimate/php-test-reporter": "^0.4.4",
"mockery/mockery": "1.0",
"phpunit/phpunit": "~5.7"
},
"authors": [
{
"name": "Sergey Zhuk",
"email": "seregazhuk88@gmail.com",
"role": "Developer"
}
]
}
1 。< / p>
当我从命令行执行symbolic
时,我得到:
dirlist(3):出界2 错误:从中调用 安装在102栏29列 pkg在第394行第9栏
这是什么错误?如何安装包?
1。这是手动下载并位于当前工作目录中:第一张图片的右下角。
2.我有必要的依赖项:pkg install symbolic-2.6.0.tar.gz
和Python
已安装:
3。我读过this post。
更新:关注@ Alex338207建议
用7-Zip(两次:符号-2.6.0.tar.gz - &gt; symbolic-2.6.0.tar - &gt; symbolic-2.6.0)提取它。
然后运行:Sympy
并收到以下错误:
解包:FILETYPE必须是“gunzip”才能进入目录
错误:从中调用 在第122行第7列打开包装 在第47栏第5栏中解释 安装在第81栏第9栏 pkg在第394行第9栏
更新2:关注@carandraug建议。在pkg install symbolic-2.6.0
之后修改函数install
(dirlist
)后,我得到:
[dirlist, err, msg] = readdir (tmpdir);
和
filelist =
{
[1,1] = symbolic-2.6.0/
[2,1] = symbolic-2.6.0/CONTRIBUTORS
[3,1] = symbolic-2.6.0/COPYING
[4,1] = symbolic-2.6.0/DESCRIPTION
[5,1] = symbolic-2.6.0/INDEX
[6,1] = symbolic-2.6.0/Makefile
[7,1] = symbolic-2.6.0/NEWS
[8,1] = symbolic-2.6.0/README.md
[9,1] = symbolic-2.6.0/bin/
[10,1] = symbolic-2.6.0/bin/winwrapy.bat
[11,1] = symbolic-2.6.0/inst/
[12,1] = symbolic-2.6.0/inst/@double/
....
[396,1] = symbolic-2.6.0/misc/
[397,1] = symbolic-2.6.0/misc/extract_tests_for_matlab.m
[398,1] = symbolic-2.6.0/misc/my_print_usage.m
[399,1] = symbolic-2.6.0/misc/octassert.m
[400,1] = symbolic-2.6.0/misc/octsympy_tests_matlab.m
[401,1] = symbolic-2.6.0/octave-symbolic.metainfo.xml
}
答案 0 :(得分:1)
似乎错误来自安装包(在实际运行包中的任何代码之前)。
Octave似乎无法在压缩目录中读取文件。
你能检查文件symbolic-2.6.0.tar.gz
的大小吗?它应该有239429个字节。也许你应该重新下载文件。您还可以使用此处描述的工具https://superuser.com/a/245776/338207验证其MD5总和(c24c07222c7bb6770cf2a6dbee653bff)。还要检查您的系统是否有足够的磁盘空间。
如果文件大小合适且错误仍然存在,您还可以解压缩文件symbolic-2.6.0.tar.gz
(例如使用7-zip)。它应该包含一个名为symbolic-2.6.0
的文件夹。避免将文件解压缩为symbolic-2.6.0\symbolic-2.6.0\...
。
在八度音程中,您可以使用以下命令从未压缩文件夹安装软件包:
cd('c:\go\to\the\directory')
c:\go\to\the\directory
是包含symbolic-2.6.0
的目录。
或者使用GUI中的“当前目录”drop-drown菜单。然后:
ls('symbolic-2.6.0')
确认您看到inst
,bin
和Makefile
等。最后:
pkg install symbolic-2.6.0
要加载包使用:
pkg load symbolic
如果您想避免加载包,也可以使用以下命令安装它:
pkg install -auto symbolic-2.6.0
答案 1 :(得分:1)
pkg
函数需要tar.gz文件,即目录树(.tar
文件)的存档,然后进行gunzipped(压缩,&#39; .gz&# 39)。所以你不应该试图自己解压缩它。
您得到的错误来自pkg/private/install.m#102,它正好在解压缩包文件后。
## The two first entries of dirlist are "." and "..".
if (exist (tgz, "file"))
packdir = fullfile (tmpdir, dirlist{3});
else
包的内部应该有一个目录,包含内容,没有别的。此时,dirlist
应为:
{".", "..", the_only_directory_inside_tgz}
但是,您的错误表明dirlist{3}
超出范围,因此在解压缩包后没有目录。您可以稍早看到dirlist
来自:
untar (tgz, tmpdir);
## Get the name of the directories produced by tar.
[dirlist, err, msg] = readdir (tmpdir);
if (err)
error ("couldn't read directory produced by tar: %s", msg);
endif
if (length (dirlist) > 3)
error ("bundles of packages are not allowed");
endif
所以,目前还不清楚问题是什么。我们可以推断readdir
没有失败,因此dirlist
至少会有.
和..
。这表明我untar
在解压缩过程中一无所获。
尝试用以下代码替换该行:
filelist = untar (tgz, tmpdir) # no ; at the end
查看解压缩的内容。另外,在下面的几行中,打印出dirlist
的值应该会给你一些关于发生了什么的提示。
编辑:查看种解决方案的回答评论。基本上,似乎untar
函数未能将包解压缩到指定的目录(C:\...Temp\oct-...
),而是将它们解压缩到C:\
。