Pycharm установка модулей из файла

Обновлено: 04.07.2024

Заканчивается как неопределенная ссылка . Тем не менее, он прекрасно работает в интерпретаторе Python из командной строки.

GNURadio отлично работает с python за пределами Pycharm. Все установлено и настроено так, как я этого хочу.

Gnuradio находится в /usr/local/lib/python2.7/site-packages/gnuradio

В Project Explorer вы можете щелкнуть правой кнопкой мыши папку, в которой находится модуль, и установить «Источник».

Он будет проанализирован в индексе для завершения кода, а также для других элементов.

Вам никогда не нужно изменять путь напрямую, через переменные окружения или sys.path . Независимо от того, используете ли вы os (например, apt-get ) или pip в virtualenv, пакеты будут установлены в папку, уже находящуюся на пути.

В вашем примере GNU Radio устанавливается в стандартное расположение site-packages системы Python 2, которое уже находится в пути. Достаточно указать PyCharm на правильного интерпретатора; если нет, то есть что-то не так, что не очевидно. Возможно, /usr/bin/python не указывает на того же интерпретатора, в котором было установлено GNU Radio; попробуйте указать конкретно на двоичный python2.7 . Или PyCharm раньше плохо обнаруживал пакеты; File > Invalidate Caches > Invalidate and Restart сказал бы, чтобы он пересмотрел.

В этом ответе будет рассказано, как настроить среду проекта, установить пакеты в различных сценариях и настроить PyCharm. Я несколько раз ссылаюсь на Руководство пользователя по упаковке Python, написанное той же группой, в которой находится официальный Инструменты упаковки Python.

В своем проекте PyCharm перейдите к File > Settings > Project > Project Interpreter . Если вы использовали virtualenvwrapper или PyCharm для создания env, то он должен появиться в меню. Если нет, щелкните по шестерне, выберите Add Local и найдите двоичный файл Python в env. PyCharm отобразит все пакеты в выбранной среде.

choose an env

manually locate env

В некоторых случаях, например, с GNU Radio, пакет pip для установки отсутствует, пакет был установлен во всей системе при установке остальной части GNU Radio (например, apt-get install gnuradio ). В этом случае вам все равно следует использовать virtualenv, но вам необходимо сообщить ему об этом системном пакете.

К сожалению, это выглядит немного сумбурно, потому что все системные пакеты теперь появятся в вашей среде, но это всего лишь ссылки, вы все равно можете безопасно устанавливать или обновлять пакеты, не влияя на систему.

В некоторых случаях у вас будет несколько разрабатываемых локальных пакетов, и вы захотите, чтобы один проект использовал другой пакет. В этом случае вы можете подумать, что вам нужно добавить локальный пакет в путь другого проекта, но это не так. Вы должны установить свой пакет в режиме разработки . Все это требует добавления файла setup.py в ваш пакет , который в любом случае потребуется для правильного распространения и развертывания пакета позже.

Минимум setup.py для вашего первого проекта:

Затем установите его в env вашего второго проекта:

Добавление пути

Перейдите в Файл → Настройки → Настройки проекта → Интерпретатор проекта.

Затем нажмите настроить интерпретатор и перейдите на вкладку «Пути».

pycharm path tab

Но я не знаю путь ..

Откройте интерпретатор python, куда вы можете импортировать модуль.

Чаще всего у вас будет структура папок, подобная этой:

Вы хотите добавить foobarbaz к пути здесь.

Как быстрое грязное исправление, это сработало для меня: добавив эти 2 строки перед проблемным импортом:

Моя версия PyCharm Professional, версия 3.4, и часть Добавление пути отличается.

Вы можете перейти в «Настройки» -> «Интерпретатор проекта». Выберите кнопку инструмента в правом верхнем углу.

Затем выберите «Еще . » -> «Показать путь для выбранного переводчика» -> «Добавить». Затем вы можете добавить путь.

Добавить путь в PyCharm 2017

Файл -> Настройки (или Ctrl + Alt + S) -> Проект -> Интерпретатор проекта

Показать все

Выберите значок снизу справа

Я новичок в PyCharm (с использованием 2018.3.4 CE) и Python, поэтому я старательно пытался следовать каждому из приведенных выше предложений, чтобы получить доступ к пакету PIL (Pillow), который, как я знал, был в system-site-packages. Никто не работал. Я собирался сдаться ночью, когда случайно заметил файл venv / pyvenv.cfg под моим проектом в окне Project Explorer. Я нашел строку «include-system-site-packages = false» в этом файле и изменил ее на «true». Проблема решена.

Однажды закончив установку анаконды .

Зайдите в Настройки -> Настройки проекта -> Интерпретатор проекта.

Затем перейдите на вкладку «Пути» и найдите / anaconda / bin / python

enter image description here

Для меня это был вопрос маркировки каталога как исходного корня.

НЕ изменяйте путь переводчика.

Вместо этого измените структуру проекта:

Файл -> Настройки -> Проект -> Структура проекта -> Добавить корень контента

Для PyCharm Community Edition 2016.3.2 это:

«Интерпретатор проекта» -> Значок настроек справа вверху -> «Дополнительно».

Тогда на правой стороне должен быть значок пакетов. При наведении на него должно быть написано «Показать пути для выбранного переводчика». Нажмите на это.

Затем нажмите кнопку «Добавить» или нажмите «alt + insert», чтобы добавить новый путь.

Язык программирования Python считается достаточно простым. На нем легче и быстрее пишутся программы, по сравнению с компилируемыми языками программирования. Для Python существует множество библиотек, позволяющих решать практически любые задачи. Есть, конечно, и минусы и другие нюансы, но это отдельная тема.

Статья начинается с базовых вещей: с установки Python 3, инструментов разработки Pip и Virtualenv и среды разработки PyCharm в Windows и в Ubuntu. Для многих это не представляет трудностей и возможно, что уже всё установлено.

После чего будет то, ради чего задумывалась статья, я покажу как в PyCharm создавать и использовать виртуальные окружения и устанавливать в них библиотеки с помощью Pip.

Установка Python и Pip

Pip является менеджером пакетов для Python. Именно с помощью него обычно устанавливаются модули/библиотеки для разработки в виде пакетов. В Windows Pip можно установить через стандартный установщик Python. В Ubuntu Pip ставится отдельно.

Установка Python и Pip в Windows

Для windows заходим на официальную страницу загрузки, где затем переходим на страницу загрузки определенной версии Python. У меня используется Python 3.6.8, из-за того, что LLVM 9 требует установленного Python 3.6.

Далее в таблице с файлами выбираем "Windows x86-64 executable installer" для 64-битной системы или "Windows x86 executable installer" для 32-битной. И запускаем скачанный установщик, например, для версии Python 3.8.1 он называется python-3.8.1-amd64.exe .

Во время установки ставим галочку возле Add Python 3.x to PATH и нажимаем Install Now:

Установка Python 3 в Windows 10

Установка Python и Pip в Ubuntu

В Ubuntu установить Python 3 можно через терминал. Запускаем его и вводим команду установки. Вторая команда выводит версию Python.

Далее устанавливаем Pip и обновляем его. После обновления необходимо перезапустить текущую сессию (или перезагрузить компьютер), иначе возникнет ошибка во время вызова Pip.

Основные команды Pip

Рассмотрим основные команды при работе с Pip в командой строке Windows и в терминале Ubuntu.

Команда Описание
pip help Справка по командам
pip search package_name Поиск пакета
pip show package_name Информация об пакете
pip install package_name Установка пакета(ов)
pip uninstall package_name Удаление пакета(ов)
pip list Список установленных пакетов
pip install -U Обновление пакета(ов)

Если виртуальные окружения не используются, то во время установки пакета(ов) полезно использовать дополнительно ключ --user , устанавливая пакет(ы) локально только для текущего пользователя.

Установка VirtualEnv и VirtualEnvWrapper

VirtualEnv используется для создания виртуальных окружений для Python программ. Это необходимо для избежания конфликтов, позволяя установить одну версию библиотеки для одной программы, и другу для второй. Всё удобство использования VirtualEnv постигается на практике.

Установка VirtualEnv и VirtualEnvWrapper в Windows

В командной строке выполняем команды:

Установка VirtualEnv и VirtualEnvWrapper в Ubuntu

Для Ubuntu команда установки будет следующей:

После которой в конец

Работа с виртуальным окружением VirtualEnv

Рассмотрим основные команды при работе с VirtualEnv в командой строке Windows и в терминале Ubuntu.

Команда Описание
mkvirtualenv env-name Создаем новое окружение
workon Смотрим список окружений
workon env-name Меняем окружение
deactivate Выходим из окружения
rmvirtualenv env-name Удаляем окружение

Находясь в одном из окружений, можно ставить пакеты через Pip, как обычно и нет необходимости добавлять ключ --user :

Для Windows можно указать в переменных среды WORKON_HOME для переопределения пути, где хранятся виртуальные окружения. По умолчанию, используется путь %USERPROFILE%\Envs .

Установка PyCharm

PyCharm — интегрированная среда разработки для языка программирования Python. Обладает всеми базовыми вещами необходимых для разработки. В нашем случае огромное значение имеет хорошее взаимодействие PyCharm с VirtualEnv и Pip, чем мы и будем пользоваться.

Установка PyCharm в Windows

Скачиваем установщик PyCharm Community для Windows с официального сайта JetBrains. Если умеете проверять контрольные суммы у скаченных файлов, то не забываем это сделать.

В самой установке ничего особенного нету. По сути только нажимаем на кнопки next, и в завершение на кнопку Install. Единственно, можно убрать версию из имени папки установки, т.к. PyCharm постоянно обновляется и указанная версия в будущем станет не правильной.

Установка PyCharm в Ubuntu

Скачиваем установщик PyCharm Community для Linux с официального сайта JetBrains. Очень хорошей практикой является проверка контрольных сумм, так что если умеете, не ленитесь с проверкой.

Распаковываем архив с PyCharm и переименовываем папку с программой в pycharm-community , убрав версию из названия.

Теперь в директории

/.local (Ctrl + H — Показ скрытый файлов), создаем папку opt , куда и перемещаем pycharm-community . В результате по пути /.local/opt/pycharm-community должны размещаться папки bin , help и т.д. Таким образом PyCharm будет находится в своём скромном месте и никому не будет мешать.

Далее выполняем команды в терминале:

Производим установку. И очень важно в конце не забыть создать desktop файл для запуска PyCharm. Для этого в Окне приветствия в нижнем правом углу нажимаем на Configure → Create Desktop Entry.

Создание desktop файла

Установка PyCharm в Ubuntu из snap-пакета

PyCharm теперь можно устанавливать из snap-пакета. Если вы используете Ubuntu 16.04 или более позднюю версию, можете установить PyCharm из командной строки.

Использование VirtualEnv и Pip в PyCharm

Поддержка Pip и Virtualenv в PyCharm появилась уже довольно давно. Иногда конечно возникают проблемы, но взаимодействие работает в основном стабильно.

Рассмотрим два варианта работы с виртуальными окружениями:

  1. Создаём проект со своим собственным виртуальным окружением, куда затем будут устанавливаться необходимые библиотеки;
  2. Предварительно создаём виртуальное окружение, куда установим нужные библиотеки. И затем при создании проекта в PyCharm можно будет его выбирать, т.е. использовать для нескольких проектов.

Первый пример: использование собственного виртуального окружения для проекта

Создадим программу, генерирующую изображение с тремя графиками нормального распределения Гаусса Для этого будут использоваться библиотеки matplotlib и numpy, которые будут установлены в специальное созданное виртуальное окружение для программы.

Запускаем PyCharm и окне приветствия выбираем Create New Project.

В мастере создания проекта, указываем в поле Location путь расположения создаваемого проекта. Имя конечной директории также является именем проекта. В примере директория называется 'first_program'.

Далее разворачиваем параметры окружения, щелкая по Project Interpreter. И выбираем New environment using Virtualenv. Путь расположения окружения генерируется автоматически. В Windows можно поменять в пути папку venv на Envs , чтобы команда workon находила создаваемые в PyCharm окружения. Ставить дополнительно галочки — нет необходимости. И нажимаем на Create.

Настройка первой программы в PyCharm

Теперь установим библиотеки, которые будем использовать в программе. С помощью главного меню переходим в настройки File → Settings. Где переходим в Project: project_name → Project Interpreter.

Чистое окружение у проекта

Здесь мы видим таблицу со списком установленных пакетов. В начале установлено только два пакета: pip и setuptools.

Справа от таблицы имеется панель управления с четырьмя кнопками:

  • Кнопка с плюсом добавляет пакет в окружение;
  • Кнопка с минусом удаляет пакет из окружения;
  • Кнопка с треугольником обновляет пакет;
  • Кнопка с глазом включает отображение ранних релизов для пакетов.

Для добавления (установки) библиотеки в окружение нажимаем на плюс. В поле поиска вводим название библиотеки. В данном примере будем устанавливать matplotlib. Дополнительно, через Specify version можно указать версию устанавливаемого пакета и через Options указать параметры. Сейчас для matplotlib нет необходимости в дополнительных параметрах. Для установки нажимаем Install Package.

Установка библиотеки matplotlib

После установки закрываем окно добавления пакетов в проект и видим, что в окружение проекта добавился пакет matplotlib с его зависимостями. В том, числе был установлен пакет с библиотекой numpy. Выходим из настроек.

Теперь мы можем создать файл с кодом в проекте, например, first.py. Код программы имеет следующий вид:

Для запуска программы, необходимо создать профиль с конфигурацией. Для этого в верхнем правом углу нажимаем на кнопку Add Configuration. . Откроется окно Run/Debug Configurations, где нажимаем на кнопку с плюсом (Add New Configuration) в правом верхнем углу и выбираем Python.

Далее указываем в поле Name имя конфигурации и в поле Script path расположение Python файла с кодом программы. Остальные параметры не трогаем. В завершение нажимаем на Apply, затем на OK.

Создание конфигурации для Python программы

Теперь можно выполнить программу и в директории с программой появится файл gauss.jpg :

Графики нормального распределение гаусса

Второй пример: использование предварительно созданного виртуального окружения

Данный пример можно использовать во время изучения работы с библиотекой. Например, изучаем PySide2 и нам придется создать множество проектов. Создание для каждого проекта отдельного окружения довольно накладно. Это нужно каждый раз скачивать пакеты, также свободное место на локальных дисках ограничено.

Более практично заранее подготовить окружение с установленными нужными библиотеками. И во время создания проектов использовать это окружение.

В этом примере мы создадим виртуальное окружения PySide2, куда установим данную библиотеку. Затем создадим программу, использующую библиотеку PySide2 из предварительно созданного виртуального окружения. Программа будет показывать метку, отображающую версию установленной библиотеки PySide2.

Начнем с экран приветствия PyCharm. Для этого нужно выйти из текущего проекта. На экране приветствия в нижнем правом углу через Configure → Settings переходим в настройки. Затем переходим в раздел Project Interpreter. В верхнем правом углу есть кнопка с шестерёнкой, нажимаем на неё и выбираем Add. , создавая новое окружение. И указываем расположение для нового окружения. Имя конечной директории будет также именем самого окружения, в данном примере — pyside2 . В Windows можно поменять в пути папку venv на Envs , чтобы команда workon находила создаваемые в PyCharm окружения. Нажимаем на ОК.

Создание окружения для PySide2

Далее в созданном окружении устанавливаем пакет с библиотекой PySide2, также как мы устанавливали matplotlib. И выходим из настроек.

Теперь мы можем создавать новый проект использующий библиотеку PySide2. В окне приветствия выбираем Create New Project.

В мастере создания проекта, указываем имя расположения проекта в поле Location. Разворачиваем параметры окружения, щелкая по Project Interpreter, где выбираем Existing interpreter и указываем нужное нам окружение pyside2 .

Создание нового проекта использующего библиотеку PySide2

Для проверки работы библиотеки создаем файл second.py со следующий кодом:

Далее создаем конфигурацию запуска программы, также как создавали для первого примера. После чего можно выполнить программу.

Заключение

У меня нет богатого опыта программирования на Python. И я не знаком с другими IDE для Python. Поэтому, возможно, данные IDE также умеют работать с Pip и Virtualenv. Использовать Pip и Virtualenv можно в командой строке или в терминале. Установка библиотеки через Pip может завершиться ошибкой. Есть способы установки библиотек без Pip. Также создавать виртуальные окружения можно не только с помощью Virtualenv.

В общем, я лишь поделился небольшой частью опыта из данной области. Но, если не вдаваться в глубокие дебри, то этого вполне достаточно знать, чтобы писать простые программы на Python с использованием сторонних библиотек.

PyCharm — интегрированная среда разработки для языка программирования Python. Предоставляет средства для анализа кода, графический отладчик, инструмент для запуска юнит-тестов и поддерживает веб-разработку на Django. PyCharm разработана компанией JetBrains на основе IntelliJ IDEA.

PyCharm — это кросс-платформенная среда разработки, которая совместима с Windows, macOS, Linux. PyCharm Community Edition (бесплатная версия) находится под лицензией Apache License, а PyCharm Professional Edition (платная версия) является проприетарным ПО.

Установка в Linux

Либо с помощью wget

Запустите JetBrains Toolbox

Примите JETBRAINS USER AGREEMENT

Выберите PyCharm Community или PyCharm Professional

Установить модуль в PyCharm

Рассмотрим как устанавливать дополнительные модули и библиотеки в PyCharm на примере requests

Перейдите в настройки проекта нажав

CTRL + ALT + S

Установка модуля requests в PyCharm

Найдите раздел Project: название вашего проекта

Выберите подраздел Project Interpreter или Python Interpreter

Нажмите на плюс в правой части экрана

Установка модуля requests в PyCharm изображение с сайта www.andreyolegovich.ru

Должно появиться окно Available Packages

Введите в стоку поиска название нужного модуля. В моём случае это requests

Установка модуля requests в PyCharm изображение с сайта www.andreyolegovich.ru

Введите в поиске requests

Установка модуля requests в PyCharm изображение с сайта www.andreyolegovich.ru

Дождитесь окончания установки

Установка модуля requests в PyCharm изображение с сайта www.andreyolegovich.ru

Дождитесь окончания установки

Pycharm: поставить курсор в начало нескольких строк подряд

Если нужно добавить или удалить что-то из нескольких срок, которые идут подряд

Поставьте курсор в нужное место самой верхней строки

Несколько курсоров одновременно в PyCharm изображение с сайта www.andreyolegovich.ru

Нажмите CTRL затем ещё раз CTRL и не отпускайте его. Нажмите стрелку вниз нужное количество раз.

Несколько курсоров одновременно в PyCharm изображение с сайта www.andreyolegovich.ru

Вертикальная линия ограничитель длины строки

Вертикальная линия после определённого числа символов помогает понять, что строка стала слишком длинной.

Что считать слишком длинной а что нет - решается обычно на проекте.

PEP 8 ограничивает длину 79 символами.

Limit all lines to a maximum of 79 characters.

For flowing long blocks of text with fewer structural restrictions (docstrings or comments), the line length should be limited to 72 characters.

Документация к Django рекомендует длину строки до 119 символов. Это связано с ограничением в GitHub

An exception to PEP 8 is our rules on line lengths. Don’t limit lines of code to 79 characters if it means the code looks significantly uglier or is harder to read.

We allow up to 119 characters as this is the width of GitHub code review; anything longer requires horizontal scrolling which makes review more difficult.

This check is included when you run flake8. Documentation, comments, and docstrings should be wrapped at 79 characters, even though PEP 8 suggests 72.

Популярный Python линтер Black ограничивает длину 88 символами.

Установить положение вертикальной линии в PyCharm можно в

File → Settings → Editor → Code Style → Hard wrap at

Установить вертикальную линию в PyCharm изображение с сайта www.andreyolegovich.ru

Разделить окно на две части

Разделить окно на две части можно разными способами

Половина слева, половина справа: выберите нужную вкладку → сделайте правый клик → Split Right

Половина снизу, половина сверху: выберите нужную вкладку → сделайте правый клик → Split Down

Если так поступить, вкладка раздвоится - один и тот же файл будет виден как в старой вкладке, так и в новой (справа или снизу)

Чтобы просто перенести вкладку на новую половину экрана выберите Split and Move Right или Split and Move Down

Переключение из терминала

Чтобы быстро переключаться между терминалом и редактором кода можно воспользоваться следующим способом

Терминал будет скрыт если активен и появится если скрыт. Курсор автоматически переходит туда-сюда.

Убрать зеленый фон у кода в PyCharm

Если в код вставлен фрагмент на другом языке, PyCharm может подсветить его зелёным.

Как в шаблон joomla 3.3 добавить свои модули?
Скажите, вот есть шаблон joomla 3 . Там есть свои позиции. Но можно ли мне добавить свою позицию.


Как правильно создавать свои собственные процедуры?
Подскажите, как правильно! Я прописываю процедуру (Delphi 7): Procedure.


Где хранить собственные файлы в PyCharm и других проектах (+venv)
Я не понимаю, где я должен располагать собственные файлы .py в проекте с использованием venv. в.

Не устанавливаются модули в PyCharm
Добрый вечер, проблем две, и они, видимо, независимые: 1. Не устанавливается модуль PyQt5 в.

пример приведи что за директории, какова структура проекта, чего он "не видит"?

Просто есть папка,в ней py файлы,как мне сделать так чтобы я из любой директории мог импортировать в файл свой созданный модуль?

Dezoway, все равно не понятно, что за директории, в питоне принято пакетами оперировать. Если папка в проекте то импортируй, что не дает? если он просто где то там на диске, то так это не работает, разве что путь указать для поиска питону с указанием этой твоей папки.

Добавлено через 25 секунд
только не понятно почему этот модуль не тут, в проекте

Нет ты не понял,я имею ввиду вот я создал модуль,добавил его в site-packages,но пайчарм не видит эти модули при импортировании в код

Добавлено через 1 минуту
Папка с самим модулем вообще на другом диске,проект на другом

Dezoway, так я и не могу понять тебя. Зачем ты добавил свой модуль в сайт пекеджес? Какова цель всех этих теложвижений? ты что-то явно не так делаешь моя цель чтобы я мог импортировать в любой момент свой модуль,и в какой угодно директории Dezoway, ты странный. Ну ок, иди в папку где установил питон (не в виртуальное окружение) и в сайт пекедж помести свой модуль. Тогда ты сможешь импортировать его откуда угодно если используешь основной питон.
НО если ты юзаешь пичарм то она создает новый венв для каждого проекта, тогда надо или и туда совать модуль или при создании проекта в пичарм выбирать основной питон.

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

Добавлено через 16 секунд
но так никто не делает, не понимаю чего ты городишь там)

Подскажи тогда как лучше добавить файл,что бы я мог импортировать его и тут и там?Разве так не делают в больших проектах?

нет. Что там за супер ценный модуль что везде нужен? если так то делать полноценную бибилиотеку из него, заливать на PiPy и импориторовать в каждый проект через pip install

Подскажи тогда как лучше добавить файл,что бы я мог импортировать его и тут и там? уже сказал - ставить в основной питон, во всех новых проектах выбирать основной интерпретатор Всё равно не получается,опиши пожалуйста как можно сделать я все уже подробно описал, ты что-то не так делаешь. Модуль должен лежать в основном питоне в сайт-пекеджес
при создании проекта в пичарм выбираем существующий венв и там выбираем основной питон.
Самое важное -не понимаю зачем это нужно, почему просто модуль не добавить в проект?

Dezoway, тогда ничем помочь не могу.
В новом модуле то напиши import твой_супер_нужный_модуль, вдруг работает?

Добавлено через 30 секунд

так и пишу import имя модуля,да и как ты сказал,добавил модуль в питон,и если в этой же директории создать файл и импортировать туда модуль,то всё норм,решил создать папку и в ней другой файл.Пробую туда импортировать модуль не найден

Добавлено через 36 секунд
*Это я через встроенную среду попробовал

Dezoway, Покажи как выглядит каталог твоего модуля в site-packages и как ты его импортируешь: 1) когда работает 2) когда не работает. Импорт модуля возможен только в том случае если я добавлял его из этого же каталога

Создаю свои собственные BB коды
Сделал свой BB код, как можно сократить код? &lt;?php if(!empty($_REQUEST))< $b = $_REQUEST;.

реализовать свои собственные задачи
Не понимаю как написать. Задача: Данное задание состоит из 2-х частей: 1) Реализовать любую.


[КуМир] Собственные модули
Есть ли возможность создавать свои собственные модули и подключать их директивой использовать?

Россия и Китай строят свои собственные космические самолеты.
На страницах нашего сайта мы уже рассказывали об американском секретном космическом самолете X-37B.

Решаем программы, пишем собственные модули и функции
Решаем программы, пишем собственные модули и функции. Давайте в этой теме будем писать совместно.

Namespaces. Кто создавал свои собственные? Почему-то не работает в VS10
Привет всем. Столкнулся тут с какой-то непонятной ситуацией - в книжке (Steven Prata) описано.

Читайте также: