上周我从Ubuntu 14.04升级到14.10.自从更新以来我第一次尝试在RStudio中使用ggplot,我的ggplot包中出现了依赖性错误,并且不再注册为已安装(之前工作正常).当我尝试重新安装ggplot2时:
install.packages("ggplot2",dep=TRUE)
Run Code Online (Sandbox Code Playgroud)
尝试安装依赖项时安装失败.这是输出尾部的样子:
* installing *source* package ‘stringr’ ...
** package ‘stringr’ successfully unpacked and MD5 sums checked
** R
** inst
** preparing package for lazy loading
Error in library.dynam(lib, package, package.lib) :
shared object ‘stringi.so’ not found
ERROR: lazy loading failed for package ‘stringr’
* removing ‘/home/james/R/x86_64-pc-linux-gnu-library/3.1/stringr’
Warning in install.packages :
installation of package ‘stringr’ had non-zero exit status
ERROR: dependency ‘stringr’ is not available for package ‘reshape2’
* removing ‘/home/james/R/x86_64-pc-linux-gnu-library/3.1/reshape2’
Warning in install.packages :
installation of …Run Code Online (Sandbox Code Playgroud) 我一直在尝试安装 PyQt,但无法克服以下错误。我读过一些建议我应该升级 PIP、setup_tools 和 ez_install 的帖子。我已经尝试了所有这些但没有运气。有小费吗?
c:\Python27>pip install PyQt5_gpl-5.10.tar.gz
Processing c:\python27\pyqt5_gpl-5.10.tar.gz
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "c:\program files (x86)\python36-32\lib\tokenize.py", line 452, in open
buffer = _builtin_open(filename, 'rb')
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\JAME~1.KRK\\AppData\\Local\\Temp\\pip-0u8uht47-build\\setup.py'
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\JAME~1.KRK\AppData\Local\Temp\pip-0u8uht47-build\
Run Code Online (Sandbox Code Playgroud)
3.6 中同样的事情:
c:\Program Files (x86)\Python36-32>pip install PyQt5_gpl-5.10.tar.gz
Processing c:\program files (x86)\python36-32\pyqt5_gpl-5.10.tar.gz
Complete output from command python setup.py egg_info: …Run Code Online (Sandbox Code Playgroud) 我global在一个if命令中使用(在Matlab中)一个语句,所以我只有在真正需要时才将全局变量导入本地命名空间.
代码分析器警告我" global除非它是函数中的顶级语句,否则效率可能非常低".考虑到可能的内部实现,我发现这个限制非常奇怪和不寻常.我在考虑两种可能性:
这个警告的真正含义是" global它本身效率很低,所以不要在循环中使用它".特别是,在if中使用它,就像我正在做的那样,非常安全,而且警告发出错误(措辞不当)
警告是正确的; Matlab在后台使用了一些非常不寻常的变量加载机制,因此在if语句中导入全局变量要慢得多.在这种情况下,我想要提示或指示这些东西是如何工作的,因为我感兴趣,如果我想在将来编写有效的代码,这似乎很重要.
这两种解释中哪一项是正确的?(或者两者都不是?)
提前致谢.
编辑:更清楚:我知道这global很慢(显然我不能避免使用它,因为它是我正在使用的旧库的设计决定); 我问的是为什么Matlab代码分析器会抱怨
if(foo==bar)
GLOBAL baz
baz=1;
else
do_other_stuff;
end
Run Code Online (Sandbox Code Playgroud)
但不是
GLOBAL baz
if(foo==bar)
baz=1;
else
do_other_stuff;
end
Run Code Online (Sandbox Code Playgroud)
我发现很难想象第一个应该比第二个慢的原因.
据我所知,MATLAB pass by reference在向其他函数发送参数时无法使用.我正在进行音频处理,而且我经常不得不将波形作为参数传递给函数,并且因为MATLAB使用pass by value这些参数,所以当我这样做时它会占用大量的RAM.
我正在考虑使用global变量作为一种方法将我的波形传递给函数,但我读到的每个地方似乎都有一个普遍的看法,这是一个坏主意,代码组织和潜在的性能问题...但我没有真的阅读有关这可能会如何影响性能的任何详细答案......
我的问题:使用全局变量(大小> 100MB)将参数传递给MATLAB中的其他函数会产生什么负面影响,包括1) 性能和2) 通用代码组织和良好实践.
编辑:从下面的@ Justin的回答中可以看出,当你不修改函数中的参数时,MATLAB有时会使用按引用传递!由此,我有关于全局变量性能的第二个相关问题:
使用全局变量会比使用pass by reference函数参数慢吗?
使用 PyInstaller 3.3、Python 3.4 我编译了一个需要使用 scipy.signal.periodogram() 函数的程序,它导致 .exe 在启动时崩溃。我一直在 stack Overflow 和其他网站上搜索尝试包含正确 DLL 的方法,但没有成功。请帮我弄清楚我是否需要在 .spec 文件中包含一些特定的 DLL 或包含一些其他隐藏导入!
这是我的 PyInstaller 命令:
pyinstaller --noupx --hidden-import=tkinter --hidden-import=scipy --hidden-import=matplotlib constantG_constantHz.py
Run Code Online (Sandbox Code Playgroud)
这是启动我的 exe 后命令提示符中的相应错误:
Traceback (most recent call last):
File "constantG_constantHz.py", line 16, in <module>
File "C:\Users\esandberg\AppData\Local\Continuum\anaconda3\envs\py34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\scipy\signal\__init__.py", line 304, in <module>
File "C:\Users\esandberg\AppData\Local\Continuum\anaconda3\envs\py34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\scipy\signal\bsplines.py", line 12, in <module>
File "C:\Users\esandberg\AppData\Local\Continuum\anaconda3\envs\py34\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 631, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\scipy\special\__init__.py", line …Run Code Online (Sandbox Code Playgroud) 我最近发现了 TMB 的神奇之处,并且正在开发一个包,最好在其中包含 TMB c++ 模板,以用于计算成本相当高的模型。
我假设有可能:
但我在 TMB 文档中找不到与此相关的任何明确指南。到目前为止,我的替代方案是编写在第一次调用使用未编译类的函数时编译 TMB 代码的函数……但我感觉有更好的方法可以做到这一点。
有没有人成功地将 TMB 函数包含在另一个包中,并且可以为我指出相关文档或示例的方向?
matlab ×2
performance ×2
r ×2
c++ ×1
dll ×1
ggplot2 ×1
global ×1
installation ×1
pyinstaller ×1
pyqt ×1
python ×1
python-3.4 ×1
scipy ×1
tmb ×1
ubuntu ×1
windows ×1