如何在Rstudio中更改默认的python版本/路径

时间:2019-05-15 16:22:32

标签: python r python-3.x rstudio

我知道以前也曾问过类似的问题,但我要么不明白答案,要么根本没有答案。所以我决定尽可能详细地描述我的问题。

问题: RStudio网状软件包从以下路径使用Python:

"/usr/bin/python"

但是我希望它从此路径使用python-始终作为默认值:

"/Library/Frameworks/Python.framework/Versions/3.7/bin/python3"

我怎么知道它发生了? 我打开RStudio,然后创建一个新的python脚本。生成一个扩展名为.py的新文件。我输入以下内容:

import pandas as pd

并执行(通过单击cmd + enter)。然后,我看到控制台中发生了什么-网状程序包称为:

reticulate::repl_python()
Python 2.7.10 (/usr/bin/python) 
Reticulate 1.12 REPL -- A Python interpreter in R.

我想永久更改网状软件包查找Python的位置。 从终端我知道:

$ python --version 
Python 3.7.3
which python3
/Library/Frameworks/Python.framework/Versions/3.7/bin/python3

因此,我想告诉RStudio始终在此路径中查找Python 3.7。我尝试使用从R脚本运行的以下命令:

use_python("/Library/Frameworks/Python.framework/Versions/3.7/bin/python3")

但是它什么也没做-我天真的理解是该命令在R markdown文件中很有用,即当我有将R和Python组合成单独代码的代码时。我想更改从RStudio中运行Python脚本时使用的路径。我可以编辑某种配置文件吗?

我希望这是有道理的。我不是Python的普通用户,现在才开始学习,并且我对路径也不是很好,因此,我希望逐步给出答案。

1 个答案:

答案 0 :(得分:0)

好,所以我发布得太早了-经过更多的谷歌搜索后,我自己可以解决此问题,但我认为值得在这里为像我这样的人(即不懂路径或不懂python的人)发布答案。 / p>

有些类似于R的配置文件,称为.Renviron。为了访问它,请使用Terminal转到您的主目录(即,键入“ cd”时转到的目录)。如果您以前从未使用过此文件,则该文件可能不存在,在这种情况下,您需要创建它。

在您的主目录中,键入:

class Card
{
   protected:
    double balance;

   public:
    string cardNumber;
    // This function should be virtual
    virtual void CreateCard()
    {
        cout << "Enter card number:";
        cin >> cardNumber;
        balance = 50;
    }
    virtual void ShowInfo()
    {
        cout << "Card number:" << cardNumber << endl;
        cout << "Balance:" << balance << endl;
    }

    // Add virtual destructor to Card
    virtual ~Card() = default;
};


class VirtualCard : public Card
{
   public:
    void CreateCard() override
    {
        cout << "Enter virtual card number:";
        cin >> cardNumber;
        balance = 50;
    }
    void ShowInfo() override
    {
        cout << "Virtual card number:" << cardNumber;
        cout << "Balance on the virtual card:" << balance;
    }
};

class Account
{
    using Card_ptr = std::unique_ptr<Card>;
    string firstname;
    string lastname;
    int    age;
    void   SetCard()
    {
        Card *card = new Card();
        card->CreateCard();
        container.emplace_back(card);
    }
    vector<Card_ptr> container;

   public:
    void SetVirtualCard()
    {
        if (container.at(0) == nullptr)
        {
            cout << "ERROR" << endl;
        }
        else
        {
            VirtualCard *vCard = new VirtualCard();
            vCard->CreateCard();
            container.emplace_back(vCard);
        }
    }
    Account(string firstname, string lastname, int age)
    {
        this->firstname = firstname;
        this->lastname  = lastname;
        this->age       = age;
        SetCard();
    }
    void SeeInfo()
    {
        for (int i = 0; i < container.size(); i++)
        {
            container[i]->ShowInfo();
        }
    }
};

然后在显示的文件列表中检查是否存在.Renviron。以下是说明,如果您已经拥有.Renviron(如果是),如果没有,那么该怎么办(如果否)。

如果否,请输入:

ls -a

创建文件。

如果是,请按照以下步骤操作(不使用touch命令)。

写:

touch .Renviron

.Renviron文件将打开。在其中添加一行,内容为:

nano .Renviron

所以,就我而言,这是:

RETICULATE_PYTHON="enter your desired path here"

现在通过退出nano(ctrl + x)并在询问是否保存更改时单击“ y”来保存文件(按“ y”,然后按Enter)。

重新启动RStudio。现在应该可以工作了。我希望这是有用的!