Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何用自制gfortran替换HPC gfortran?_Python_Pip_Homebrew_Osx Yosemite_Gfortran - Fatal编程技术网

Python 如何用自制gfortran替换HPC gfortran?

Python 如何用自制gfortran替换HPC gfortran?,python,pip,homebrew,osx-yosemite,gfortran,Python,Pip,Homebrew,Osx Yosemite,Gfortran,目前,我的Yosemite系统上安装了Xcode(以及命令行工具)和gfrotran,我想用自制的gfortran替换HPC的gfortran(因为我在用HPC gfortran构建Python包时遇到了麻烦) 实现这一目标的步骤是什么 我想确定 HPC的gfortran不见了(我只想要一个Fortran)并且 苹果的工具仍然有效(用于Xcode、Swift、OSX和iOS开发等) 当然 我有一个可靠构建Python包的gfortran工作版本 这能做到吗?例如,我看到Homebrew的gfor

目前,我的Yosemite系统上安装了Xcode(以及命令行工具)和gfrotran,我想用自制的gfortran替换HPC的gfortran(因为我在用HPC gfortran构建Python包时遇到了麻烦)

实现这一目标的步骤是什么

我想确定

  • HPC的gfortran不见了(我只想要一个Fortran)并且
  • 苹果的工具仍然有效(用于Xcode、Swift、OSX和iOS开发等)
  • 当然

  • 我有一个可靠构建Python包的gfortran工作版本
  • 这能做到吗?例如,我看到Homebrew的gfortran现在被打包为gcc的一部分,所以看起来我最终会得到两个版本的gcc(我希望避免),或者一个不能很好地使用Xcode的版本


    完成1-3的步骤是什么?

    我最近也解决了同样的问题。这就是我在约塞米蒂系统上工作的方式

    有关home brew和命令行工具编译器的一些内容:

  • 通过home brew获得的编译器将覆盖位于同一位置的现有编译器。如果您有从命令行工具获得的fortran编译器,则不会受到影响。(Home brew将在执行任何操作之前警告您)

  • 通过命令行工具获得的编译器二进制文件位于
    /usr/bin

  • 使用家用brew获得的编译器(以及其他任何东西)存储在Cell中(
    /usr/local/Cell
    ) 可执行文件链接到目录
    /usr/local/bin

  • 怎么办?
  • 修改路径: 我只需要使用通过自制获得的编译器,因此我将
    /usr/local/bin
    移动到
    $path
    的顶部,这确保在
    /usr/bin
    之前搜索
    /usr/local/bin
    目录

  • 使用别名: 您可以为每个编译器创建一个别名,以便可以根据需要互换使用它们。要创建别名,必须修改shell rc文件。在我的系统上,我使用tcsh,要为家用brew编译器创建别名,我会在~/.cshrc文件中添加类似的内容

    alias brewgfortran '/usr/local/bin/gfortran'
    
    现在,它将执行存储在我的Cell中并链接到
    /usr/local/bin/gfortran/

  • 如果你绝对想摆脱apple编译器,你当然可以将它们从
    /usr/bin/
    目录中完全删除。但我认为这不是最好的主意。我已经向您展示了一些避免使用它们的方法,如果您出于某种原因需要它们,您将非常满意。我不能说如果没有这些工具,您所需要的工具是否可以工作,因为我从未使用过这些工具,但是我知道它将为您构建python包(抱歉,希望这仍然有用)


  • 注意:如果您使用的不是与我相同的shell,那么别名的语法会有点不同(我想)只是google it或
    man alias

    不能建议re 1,但是Homebrew的
    gcc
    软件包会安装带有后缀名的二进制文件,如
    gcc-4.9
    ,gfortran除外,安装时没有后缀。自制gcc库的沙盒方式不应干扰hpc二进制文件
    mv/usr/local/bin/gfortran/usr/local/bin/gfortran hpc
    应足以使
    brew安装gcc
    成功并正常工作。HPC和自制gcc的存在不应影响苹果的工具。苹果没有在最近的Xcode中发布gcc/usr/bin/gcc是一个调用clang的存根。时间机器是你的朋友。。。在开始备份之前,请确保正在运行正确的备份。@TimSmith:我是否应该使用强制或覆盖选项(或其他方式)来处理HPC的gfortran安装的所有文件(问题1)?它们是否会造成问题?如果您想删除HPC文件,请下载从中安装的tarball,并执行以下操作:
    cd/;读取文件时tar tzf path/to/gfortran.tar.gz | sort-r |;如果[-d“$file”],则执行此操作;然后rmdir“$file”;else rm-f“$file”;fi;完成
    应删除他们安装的所有文件。首先尝试使用echo而不是rm,以确保您对它将要做的事情感到满意。它将尝试并rmdir一些目录,如
    /usr
    ,这将是无害的,因为rmdir不会rm非空目录。@Ajay来自:“然后是gunzip gcc-4.9-bin.tar.gz(如果您的浏览器还没有这样做),然后是sudo tar-xvf gcc-4.9-bin.tar-C/。它会在/usr/local中安装所有内容。”。安装在那里的不仅仅是自制软件
    /usr/local
    几乎是任何其他(类unix)软件的默认设置。FWIW,我最终手动删除了HPC的gfortran安装的文件(随后是gfortran的
    brew安装
    ,并根据安装建议对链接进行了一些删减和覆盖)。除了和
    mysql实用程序
    /usr/local
    现在似乎在自制的控制之下。苹果的
    gcc
    似乎没有受到干扰。很高兴听到这个消息,在这种情况下,备份真的是你的朋友。如果它坏了,你总是希望能够回去!