Исполняемый файл pg_config не найден

Часто вам нужно знать IP-адрес того, кто посещает ваш сайт. В то время как ASP.NET имеет несколько способов сделать это, одним из лучших способов, которые мы видели, является использование «HTTP_X_FORWARDED_FOR» коллекции ServerVariables.

Вот почему ...

Иногда ваши посетители находятся за прокси-сервером или маршрутизатором, а стандарт Request.UserHostAddress фиксирует только IP-адрес прокси-сервера или маршрутизатора. Если это так, тогда IP-адрес пользователя сохраняется в переменной сервера («HTTP_X_FORWARDED_FOR»).

Итак, мы хотим сначала проверить «HTTP_X_FORWARDED_FOR», и если это пусто, мы просто возвращаем ServerVariables("REMOTE_ADDR").

Хотя этот метод не является надежным, он может привести к лучшим результатам. Ниже представлен код ASP.NET в VB.NET, взятый из сообщения g0 Джеймс Кроули «Gotcha: HTTP_X_FORWARDED_FOR возвращает несколько IP-адресов»

C #

protected string GetIPAddress()
{
    System.Web.HttpContext context = System.Web.HttpContext.Current; 
    string ipAddress = context.Request.ServerVariables["HTTP_X_FORWARDED_FOR"];

    if (!string.IsNullOrEmpty(ipAddress))
    {
        string[] addresses = ipAddress.Split(',');
        if (addresses.Length != 0)
        {
            return addresses[0];
        }
    }

    return context.Request.ServerVariables["REMOTE_ADDR"];
}

VB.NET

Public Shared Function GetIPAddress() As String
    Dim context As System.Web.HttpContext = System.Web.HttpContext.Current
    Dim sIPAddress As String = context.Request.ServerVariables("HTTP_X_FORWARDED_FOR")
    If String.IsNullOrEmpty(sIPAddress) Then
        Return context.Request.ServerVariables("REMOTE_ADDR")
    Else
        Dim ipArray As String() = sIPAddress.Split(New [Char]() {","c})
        Return ipArray(0)
    End If
End Function
571
задан William Jackson 11 December 2013 в 15:27
поделиться

5 ответов

Для любого испытывающего эту проблему, работающую над приложением Django и развертывающуюся к AWS, метод, описанный в этом учебном руководстве, работал на меня: https://realpython.com/deploying-a-django-app-and-postgresql-to-aws-elastic-beanstalk /

Вот является объяснением автора того, когда Вы получаете следующую ошибку:

Error: pg_config executable not found.

проблема состоит в том, что мы пытались установить psycopy2 (Пост-ГРЭС привязка Python), но нам нужны клиентские драйверы Пост-ГРЭС, которые будут установлены также. Так как они не установлены по умолчанию, мы должны установить их сначала.

eb считает пользовательские .config файлы из папки, названной “.ebextensions” на корневом уровне Вашего проекта. Эти .config файлы позволяют Вам устанавливать пакеты, выполнять произвольные команды и/или устанавливать переменные среды. Файлы в каталоге “.ebextensions” должны соответствовать или JSON или синтаксису YAML и выполняются в алфавитном порядке.

первое, что нужно сделать является установкой некоторые пакеты так, чтобы наша команда установки зернышка завершилась успешно. Чтобы сделать это, let’s создает файл, названный .ebextensions/01_packages.config:

packages:
  yum:
    git: []
    postgresql93-devel: []
    libjpeg-turbo-devel: []

экземпляры EC2 выполняют Amazon Linux, который является разновидностью Redhat, таким образом, мы можем использовать конфетку для установки пакетов, в которых мы нуждаемся. На данный момент мы просто собираемся установить три пакета - мерзавец, клиент Пост-ГРЭС и libjpeg для Подушки.

1
ответ дан kashgo 29 August 2019 в 17:35
поделиться
  • 1
    Теперь, когда you' ve отредактировал его, я удалю свои-1:) – friedo 26 July 2010 в 21:51

На MacOS самое простое желание является к символьной ссылке корректным двоичным файлом, который является в пакете Пост-ГРЭС.

sudo ln -s /Applications/Postgres.app/Contents/Versions/latest/bin/pg_config /usr/local/bin/pg_config

Это довольно безопасно, и все приложения будут в состоянии использовать его в масштабе всей системы при необходимости.

4
ответ дан Subin Sebastian 4 November 2019 в 07:31
поделиться

Существует отсутствие ответов для пользователей Windows. Вот то, как я решил эту проблему.

Первый добавляют папку мусорного ведра PostgreSQL в переменную пути как это

set PATH=%PATH%;C:\Program Files\PostgreSQL\11\bin

Замена \11\ с Вашей версией Пост-ГРЭС

следующий запуск

pip install pyscopg2

, это, по крайней мере, получило меня к ошибке компиляции.

Обновление : это надеется быть проблемой с psycopg2 библиотекой и it’s зависимостями, не играющими по правилам с python 3.8. https://github.com/psycopg/psycopg2/issues/990

1
ответ дан 22 November 2019 в 21:49
поделиться

Я собираюсь оставить это здесь для следующей неудачной души, которая не может обойти эту проблему несмотря на все предоставленные решения. Просто используйте sudo pip3 install psycopg2-binary

8
ответ дан 22 November 2019 в 21:49
поделиться

Можно установить предварительно скомпилированные двоичные файлы на любой платформе с pip или conda:

pip install psycopg2-binary

или

conda install psycopg2

Доводим до вашего сведения, что psycopg2-двоичный-файл pypi страница рекомендует создать из источника в производстве:

двоичный пакет является практическим выбором для разработки и тестирования, но в производстве рекомендуется использовать пакет, созданный из источников

0
ответ дан 22 November 2019 в 21:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: