Как я могу добавить существующую структуру папок в мой проект Visual Studio (инструменты Python)?
Этот вопрос по сути такой же, как эти:
Как добавить существующее дерево каталогов в проект в Visual Studio? Как "Добавить существующий элемент" всю структуру каталогов в Visual Studio?
За исключением того, что решения не работают для меня.
Похоже, у другого пользователя точно такая же проблема
http://pytools.codeplex.com/discussions/249455
Но http://xkcd.com/979/ снова ударил.
Я использую Visual Studio 2010 с Python Tools для Visual Studio.
В этом проекте пользователи создают новые папки и код и фиксируют их в SVN. Другой пользователь обновит SVN, и новые файлы и папки появятся в проводнике Windows. Затем пользователю нужен простой способ добавить эти папки и файлы в решение.
Поместить решение в SVN таким образом, чтобы добавленные папки могли быть добавлены в решение до фиксации, не вариант. Раствор контролируется отдельно от источника.
Предлагаемое решение:
Не будет работать, потому что:
Кнопка "Показать все файлы" в обозревателе решений не отображается.
Предлагаемое решение:
Не будет работать, потому что:
Когда я перетаскиваю папку на панель обозревателя решений, расположение папки, на которую она упала, влияет на то, где в решении она вложена. Если он помещается в неправильную папку, он отображается как папка с ожидаемым именем и ожидаемым содержимым. Это действительно близко к тому, что мы хотим, за исключением того, что он находится в неправильной папке (так как я уронил его в неправильную папку, намеренно). Если папка перетаскивается в правильное место, она отображается в виде файла с восклицательным знаком. Когда вы дважды кликаете на "файл", он говорит
"The item <folder name> does not exist in the project directory. It may have been moved, renamed, or deleted"
Я полагаю, что это потому, что VS попытается создать копию папки в каталоге, в который вы ее перетаскиваете. Если я полностью переместу папку из своего проекта (скажем, на рабочий стол), а затем перетащу ее в обозреватель решений в нужном месте, она отобразится в виде папки в проекте. Копия папки также создается на диске в месте, указанном в раскрывающемся списке, с тем же именем и содержимым.
Таким образом, создается впечатление, что перетаскивание папки в обозреватель решений создаст копию папки на диске в том месте, которое вы указали в своем решении, когда вы его отбросили. Если в этом месте уже есть папка с таким именем, папка импортируется как файл.
Мое решение
Вместо этого я использую PyCharm, это намного лучше.
3 ответа
Если больше ничего не работает, вы можете добавить файлы и папки вручную в .pyproj
-файл. Формат прост:
<ItemGroup>
<Compile Include="File1.py" /> <!-- List of files relative to .pyproj folder -->
<Compile Include="test\file2.py" />
</ItemGroup>
<ItemGroup>
<Folder Include="test\" /> <!-- List of folders -->
</ItemGroup>
Вы можете добавить больше <ItemGroup>
элементы, если хотите, и вы можете смешивать файлы и папки, если хотите.
Скрипт для генерации XML:
import os
def visit(folder):
for fn in os.listdir(folder):
filename = os.path.join(folder, fn)
_, ext = os.path.splitext(fn)
if os.isdir(filename):
folders.append(filename)
visit(filename)
elif ext.lower() == '.py':
files.append(filename)
files = []
folders = []
visit('.')
print '<ItemGroup>'
for fn in files:
print ' <Compile Include="' + fn + '"/>'
print '</ItemGroup>'
if folders:
print '<ItemGroup>'
for fn in folders:
print ' <Folder Include="' + fn + '\\"/>'
print '</ItemGroup>'
Показать все файлы работает. Показать все файлы в меню проекта.
Проект-> Показать все файлы
Это сработало для меня в visual studio 2013, я не знаю, применимо ли это к другим итерациям Visual Studio.
После установки Python Tools для Visual Studio (PTVS), который я нашел здесь
Откройте Visual Studio, перейдите к FILE->NEW->PROJECT (или удерживайте Cntrl+ Shift+N)
В диалоговом окне нового проекта перейдите к существующему каталогу проекта Python. Введите название вашего проекта в поле имени проекта. снимите флажок создать каталог для решения (если вы не хотите создавать новый каталог проекта). И выберите "Из существующего кода Python" и нажмите "ОК".
В мастере "Создать новый проект из существующего кода Python" следуйте указаниям и при необходимости выполните все необходимые настройки или просто нажмите "Готово".